PHP — Дмитрий [KP0H] Пелевин https://pelevin.pro Сохраняю тишину в голове Fri, 23 Jan 2015 21:10:47 +0000 ru-RU hourly 1 48722140 Установка PHP на Mac OS X https://pelevin.pro/2015/01/%d1%83%d1%81%d1%82%d0%b0%d0%bd%d0%be%d0%b2%d0%ba%d0%b0-php-%d0%bd%d0%b0-mac-os-x/ https://pelevin.pro/2015/01/%d1%83%d1%81%d1%82%d0%b0%d0%bd%d0%be%d0%b2%d0%ba%d0%b0-php-%d0%bd%d0%b0-mac-os-x/#respond Wed, 14 Jan 2015 23:14:08 +0000 http://pelevin.pro/?p=1983 С тех пор как я попробовал после Windows систем сесть на Linux, а потом и на Mac ничего кардинально не изменилось. Пока нужно сделать что-то не сложное — это делается в один клик, как только нужно сделать что-то очень простое, это просто невыполнимо.

Ну в общем, мне нужно настроить Mac OS для разработки на PHP. Надо заметить что Apache на моем Mac уже стоит, причем это по умолчанию. (У меня Yosemite, для справки).

Особо удачливые и гуру могут использовать инструкцию с сайта php, а здесь я попытаюсь изложить доходчиво и по пунктам для всех остальных.

Ну пожалуй по порядку.

Apache

Нам нужен для работы Apache, который в принципе уже предустановлен (в Yosimite по умолчанию доступна версия 2.4), но в панели управления никаких интерфейсов для работы с ним не представлено.

Есть несколько простых способов решить эту задачку с помощью сторонних приложений, например, clickontyler или VirtualHostX. (На самом деле clickontyler это более простая и бесплатная версия одного и того же продукта).

Но все можно сделать используя уже имеющиеся средства.

Нас интересует Terminal и apachectl.

Чтобы запустить web-сервер:

$ sudo apachectl start

Чтобы остановить apache:

$ sudo apachectl stop

Чтобы перезапустить apache после изменение конфигурации:

$ sudo apachectl restart

Если после запуска сервера Вы не можете зайти на http://localhost возможно необходимо добавить алиас в файле /etc/hosts: 127.0.0.1 localhost. Хотя, это должно быть по умолчанию.

Настройки Document Root

В первую очередь я изменил корневую папку, с которой работает сервер. По умолчанию это /Library/WebServer/Documents. Поскольку эта машина предназначена для разработчика можно изменить директорию, на папку в домашней директории пользователя. Для этого необходимо внести правки в конфигурационный файл Apache.

/etc/apache2/httpd.conf

Можно использовать любой удобный редактор, к примеру vi или subl. Главное запускать его с правами root, для этого необходимо использовать команду sudo.

Я предпочитаю использовать простой редактор — nano.

$ sudo nano /etc/apache2/httpd.conf

Terminal Nano httpd.conf

Найдите в документе DocumentRoot, строка должна выглядеть следующим образом:

DocumentRoot "/Library/WebServer/Documents"

Измените адрес на необходимый вам. К примеру

DocumentRoot "/Users/<имявашегопользователя>/Sites"

Так же нужно внести изменения внутри <Directory> должен быть указан тот же путь:

<Directory "/Users/<имявашегопользователя>/Sites">

Внутри блока <Directory> вы найдете настройку AllowOverride, измените ее следующим образом:

AllowOverride All

* посмотреть назначение параметров можно, например, здесь.

User & Group

Теперь апач смотрит на папку Sites, расположенную в домашней директории пользователя. Есть одна проблема, по умолчанию apache работает из под пользователя _www и группы _www, поэтому сервер может не иметь доступа к домашней директории. Снова редактируем httpd.conf.

User <имявашегопользователя>
Group staff.

Создаем корневую директорию

Конечно, для того чтобы применить настройки необходимо перезапустить Apache sudo apachectl restart.

Выше мы уже сделали необходимые настройки, но самой директории у нас еще нет. Создать ее можно из терминала или из Finder. Следующий пример создает директорию и файлик index.html, содержащий заглушку, которой можно будет проверить работу сервера.

$ mkdir ~/Sites
$ echo "<h1>Hello World!!!1111 Работает!!!</h1>" > ~/Sites/index.html

Теперь, когда вы откроете в браузере http://localhost, вы должны увидеть именно это сообщение. Если все работает — можно продолжать дальше.

Homebrew

Существуют различные менеджеры пакетов для Mac OS:

В принципе, вы можете использовать тот, что Вам больше нравится. Исторически сложилось так, что я пользуюсь Homebrew.

В первую очередь, для установки brew потребуется поставить XCode и Command Lite Tools. Сперва убедитесь, что установлен XCode он доступен в Mac App Store.

Затем в терминале пишем:

xcode-select --install

xcode-install

Установка

Полную документацию можно найти на Homebrew Wiki, кажется теперь ее переместили к репозиторию на GitHub. Я приведу только выдержку.

$ ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

Просто следуем предложениям терминала и там где требуется вводим пароль. Это займет несколько минут.

Проверка

Простой вариант проверить, что brew установился корректно — набрать команду:

$ brew --version

Так же вы можете использовать следующую команду, чтобы удостовериться, что все корректно

$ brew doctor

Вы получите инструкции, если необходимо что-то исправить.
Если brew уже был установлен, удостоверьтесь, что вы используете последую доступную версию:

$ brew update

Теперь можно работать с brew.

Немного мат.части для общего развития.

У Homebrew есть формулы, это нечто вроде скриптов на Ruby, например вот:

class Wget < Formula
  homepage "https://www.gnu.org/software/wget/"
  url "https://ftp.gnu.org/gnu/wget/wget-1.15.tar.gz"
  sha1 "f3c925f19dfe5ed386daae4f339175c108c50574"

  def install
    system "./configure", "--prefix=#{prefix}"
    system "make", "install"
  end
end

Homebrew устанавливает программы в их собственные директории и создает символьную ссылку на них в /usr/local.

Homebrew не станет устанавливать файлы за пределами своей директории. Вы можете установить Homebrew в любую директорию.

Установка PHP 5.4

В общем-то после установки brew, установка php становится весьма тривиальной задачей. В данном описании я покажу только установку конкретной версии PHP, а дальнейшем постараюсь показать вариант установки нескольких версий и переключения между ними. Англоязычное описание по установке нескольких версий php можно найти прямо здесь.

$ brew tap homebrew/dupes
$ brew tap homebrew/versions
$ brew tap homebrew/homebrew-php
$ brew install php54

Этот процесс займет какое-то время.

Если в процессе компиляции вы увидите ошибку: configure: error: Cannot find OpenSSL’s вам необходимо переустановить XCode command line tools, для этого достаточно набрать: xcode-select —install

Если вам потребуется подстроить php под себя, конфигурационный файл вы сможете найти по адресу:

/usr/local/etc/php/5.4/php.ini

Настройка Apache

Теперь, когда мы успешно установили php, необходимо объяснить Apache, как работать с ним. Для этого снова редактируем файл /etc/apache2/httpd.conf. Ищем в нем строку начинающуюся с #LoadModule php5_module.

# — в данном случае символ комментария, но мы можем не трогать эту строку, т.к. параметр все равно ссылается на версию php, которая была предустановленна вместе с OS X.

Просто добавляем под этой строкой следующее:

# Brew PHP LoadModule
LoadModule php5_module /usr/local/opt/php54/libexec/apache2/libphp5.so

Так мы сказали Apache для обработки PHP запросов использовать PHP 5.4, который установили ранее.

Так же сразу следует убрать комментарий с объявления модуля mod_rewrite.so (описание на английском языке можно найти здесь):

LoadModule rewrite_module libexec/apache2/mod_rewrite.so

Перезапускаем Apache, для обновления конфигурации $ sudo apachectl restart.

Теперь Apache должен начать обрабатывать php.

Для проверки этого утверждения используем команду phpinfo(), которая заодно расскажет нам практически все текущие параметры и пригодится в будущем.

Просто создаем файл info.php в папке ~/Sites/ и помещаем в него одну строку

<?php phpinfo()

Открываем в браузере http://localhost/info.php и наблюдаем страницу с информацией о нашем PHP.

phpinfo()

]]>
https://pelevin.pro/2015/01/%d1%83%d1%81%d1%82%d0%b0%d0%bd%d0%be%d0%b2%d0%ba%d0%b0-php-%d0%bd%d0%b0-mac-os-x/feed/ 0 1983
Обновления WordPress https://pelevin.pro/2012/04/%d0%be%d0%b1%d0%bd%d0%be%d0%b2%d0%bb%d0%b5%d0%bd%d0%b8%d1%8f-wordpress-2/ https://pelevin.pro/2012/04/%d0%be%d0%b1%d0%bd%d0%be%d0%b2%d0%bb%d0%b5%d0%bd%d0%b8%d1%8f-wordpress-2/#comments Sun, 22 Apr 2012 11:07:09 +0000 http://pelevin.pro/?p=217 Для тех кто разбирается не секрет что этот блог сделан на WordPress.

Этот движок меня очень радует своим развитием и обилием приятных возможностей, которые я порой нахожу.

Буквально только что я зашел на сайт под учетной запись  для размещения контента, как увидел уведомление что для WordPress вышли обновления. Причем поскольку учетка не имеет администраторских прав ей сказали что необходимо сообщить администратору сайта.

Зашел из под учетки администратора — 1 клик мышки и версия WordPress обновлена. И это не смотря на то что сделано все на банальном PHP. Несмотря на мое пренебрежение этим языком из-за обилия быдлокодеров, которые пишут не думая, дело не в языке вовсе.

Что обновилось:

Обновлены системы безопасности для 3 внешних библиотек, включенных в WordPress:

  1. Plupload (версия 1.5.4) — используется для загрузки информации.
  2. SWFUpload — ранее использовался для загрузки информации, и все еще может быть в необходим для при использовании плагинов.
  3. SWFObject — ранее использовался для внедрения флэш-контента, и все еще может быть необходим для использования некоторых плагинов и тем.

А так же исправлены:

  1. Ограниченния привилегий, где администратор сайта может отключить сетевые плагины при опредиленных обстоятельствах
  2. Межсайтовый скриптинг — уязвимость при создании кликабельного URL-адреса.
  3. Межсайтовый скриптинг — уязвимости перенаправления после размещения комментариев в старых браузерах, и при фильтрации URL-адресов.

Полный лог изменений здесь (на английском языке)

Измененный файлы:

wp-comments-post.php
wp-includes/version.php
wp-includes/js/swfobject.js
wp-includes/js/plupload/plupload.html4.js
wp-includes/js/plupload/plupload.silverlight.xap
wp-includes/js/plupload/plupload.html5.js
wp-includes/js/plupload/changelog.txt
wp-includes/js/plupload/plupload.silverlight.js
wp-includes/js/plupload/plupload.flash.js
wp-includes/js/plupload/handlers.dev.js
wp-includes/js/plupload/plupload.flash.swf
wp-includes/js/plupload/plupload.js
wp-includes/js/swfupload/swfupload.swf
wp-includes/wp-db.php
wp-includes/formatting.php
wp-includes/capabilities.php
wp-includes/kses.php
wp-includes/script-loader.php
wp-includes/ms-functions.php
readme.html
wp-admin/about.php
wp-admin/includes/update-core.php
wp-admin/plugins.php
wp-admin/press-this.php
wp-admin/setup-config.php

]]>
https://pelevin.pro/2012/04/%d0%be%d0%b1%d0%bd%d0%be%d0%b2%d0%bb%d0%b5%d0%bd%d0%b8%d1%8f-wordpress-2/feed/ 3 217