Apache, MySQL, PHP на Ubuntu ( + VirtualHosts)

Вот уже в который раз я занимаюсь установкой такой простейшей, для разработки сайтов, конфигурации, как связка Apache + PHP + MySQL на системе Ubuntu linux. На самом деле в сети просто бесчисленное количество описаний процесса установки, но почему то итоговый путь, всегда приходится собирать по кусочкам из разных мест. Поэтому и я решил вложить свои навыки по этой теме.

Во-первых: Что мы имеем? Операционную систему Ubuntu Linux (я проверял на версиях 9.04+) и желание(необходимость) разрабатывать сайты на php. В консоли, для простоты, установлен оконный менеджер Midnight Commander (ставится командой sudo apt-get install mc)

Во-вторых: Что мы хотим? Apache 2, PHP последней версии, Mysql сервер, утилиту администрирования mysql сервера (я рекомендую оракловские MySQL Administrator и MySQL Query Browser), виртуальные хосты.

И так. Устанавливаем mysql (сервер, клиент и систему администрирования), apache (второй), php5 с дополнениями. После чего - перезагружаем apache.

sudo apt-get install mysql-server mysql-client apache2 php5 libapache2-mod-php5 php5-mysql imagemagick php5-geoip php5-cli php5-imagick php5-common php5-mysql php5-curl php5-intl php5-tidy php5-xcache php5-gd php5-memcache php5-memcached php5-mcrypt php5-xsl php5-xdebug php5-xcache

sudo /etc/init.d/apache2 restart 

Во время установки mysql, Вас попросят ввести пароль root пользователя, а затем повторить его. Введите сложный пароль и не забудьте его.
При перезагрузки, у меня всегда вылазит такая ошибка:


 * Restarting web server apache2                                                
apache2: Could not reliably determine the server's fully qualified domain name, using 127.0.1.1 for ServerName
 ... waiting apache2: Could not reliably determine the server's fully qualified domain name, using 127.0.1.1 for ServerName
                                                                         [ OK ]

Читаем её, и понимаем, что нету у нас имени сервера. Хорошо. Теперь будем настраивать. Для начала - уберём эту ошибку. Идёт в папку /etc/apache2/ (именно там хранит свои настройки apache в ubuntu).

mcedit httpd\.conf

Пишем там

ServerName 127.0.0.1

Перезапускаем apache и радуемся отсутствию ошибки.
Теперь приступаем к виртуальным хостам. В ubuntu работа с виртуальными хостами построена очень и очень легко! Каждый отдельный виртуальный хост - отдельный файл, с его описанием. Хосты лежат в папке /etc/apache2/sites-available/, но не все они сразу включены. Первонаперво, создайте локалхост - скопируйте в ту же папку файл default, измените в нём настройки хоста и сохраните файл. Я обычно использую вот такие настройки виртуальных хостов (все сайты у меня хранятся в папке /home/webserver/___SITENAME___/public_html/).

<VirtualHost *:80>
    ServerAdmin example@example.com
    ServerName example.com
    DocumentRoot /home/webserver/example.com/public_html/
    <Directory /home/webserver/example.com/public_html/>
        Options FollowSymLinks
        AllowOverride All
        Order allow,deny
        allow from all
    </Directory>
    ErrorLog /home/webserver/example.com/logs/error.log
    LogLevel info
    CustomLog /home/webserver/example.com/logs/access.log combined
</VirtualHost>

Простейшие настройки, потому что бОльшего мне не нужно. Я пишу полные логи ошибок в error.log. Всё рядышком, в одной директории.

Но создание файла - это ещё не всё. Нужно его включить! Делается это командой (filename - имя файла с настройками сайта, который вы хотите включить)

a2ensite example

После чего, для вступления настроек в силу, нужно перезапустить apache.
Для того, что бы теперь можно было запрашивать сайты из браузера - прописываем их в /etc/hosts, после айпишника. Примерно так: (можно перечислять все домены в одной строке)

127.0.0.1   example.com example2.com example3.info 

Остался последний штрих. Мои сайты всегда используют mod_rewrite. По умолчанию он выключен. Включает его простая команда:

a2enmod rewrite

Осталось перезагрузить apache (/etc/init.d/apache2 resatart) и всё будет в шоколаде! :) Удачи.

Читать далее...

Mysql Dump

Правильный mysqldump из консоли выглядет так:

mysqldump -u db_user_name -h db_server_host -P db_server_port --password="db_user_password" db_name | gzip>`date +%Y%m%d-%H%M`.sql.gz

Мне достаточно этой строчки. Кому нужно подробнее - брал тут.

Читать далее...

Пароль в MySQL 5.7

Сегодня поставил на свой домашний компьютер mysql сервер версии 5.7. Но при первом подключении мой любимый Seaquel Pro выдал ошибку:

ERROR 1862 (HY000): Your password has expired. To log in you must change it using a client that supports expired passwords.

Читать далее...