Архив метки: mysql

Шеф, все пропало.

Итак, после 2-х месячного отдыха сайт заработал. Все дело было в Mysql, который никак не хотел подниматься. Все писал, что типа "Сan't connect to local mysql server
through socket '/tmp/mysql.sock' (2)". Было очень много танцев вокруг него, перепробавана куча советов. Даже удалял его полностью, обновлялся до версии из testing.
Потом пошла другая ошибка, но уже при обновлении до testing -

update-alternatives: error: alternative path /etc/mysql/mysql.cnf doesn't exist

В обчем, на 2 недели я на него забил. А сегодня решил таки продолжить решать проблему. Делов-то оказывается оставалось на 2 пальца - сделать "ln -s /etc/mysql/my.cnf
/etc/mysql/mysql.cnf" и далее apt-get -f install. Мускул запустился. Правда забекапченая база у меня оказалась немного старовата - не хватает таких постов:

"Взял себе новый маршрутизатор" 22.08.2015
"Доработка мелкой наждачкой темы Twenty Twelve 3" 25.08.2015
"Разбираемся с Gentoo и MAKEOPTS=”-j${core} +1″" 01.09.2015

Пост "Проблема с WordPress 4.3 Media Library" я достал из кэша гугла.

В принципе про Gentoo и значения MAKEOPTS можно восстановить, у меня остался текстовый файл с значениями времени сборки.

FreeBSD + Apache + MySQL + PHP5 + WordPress

Собственно, почему решил переехать на свой собственный standalone блог:  завалялся у меня старый ноут, на котором стояла попеременна то винда, джента,
фря, винда и опять фря. Вообще хотел на нем продолжить изучение Фряхи, но каждый раз давал слабину и просто забивал на это и бук так и продолжал
пылиться дальше.  Ну а на этот раз решил так сказать простимулировать себя, чтобы не было желания в очередной раз забросить Фряху и бук. И начал
думать, что бы такое организовать на этом буке. Думал долго, минуты 3. И надумал такое – запустить свой собственный блог, а потом еще и форум докучи,
чтобы был хоть какой-то опыт в настройке Апача, Похапе и Мускуля. посмотрел, че да как, выбрал в качестве движка блога WordPress.
Собствеено, здест описывается процесс установки и настройки связки Apache + MySQL + PHP5 + WordPress на FreeBSD.
Т.к. сам делал все по различным руководствам, я просто дам ссылку на страницу с настройками, ибо смысла перепечатывать одно и то же нет.
Начинаем с установки MySQL
Опции сборки и пример конфига можно посмотреть здесь – http://www.lissyara.su/articles/freebsd/programms/mysql/
Хотя в первый раз, когда я все ставил, не пользовался ни опциями сборки, которые могут ускорить работу Мускуля, ни исправлял конфигурационный файл -
все работало и так. После пересборки и рихтовки конфига тоже все работает. Менять что-то или нет – на ваш выбор.
Ставим mysql50-server

cd /usr/ports/databases/mysql50-server
make install clean

После того, как все соберется, ставим mysql50-scripts

cd /usr/ports/databases/mysql50-scripts
make install clean

Дальше ставим клиент mysql50-client

cd /usr/ports/databases/mysql50-client
make install clean

Прописываем в /etc/rc.conf
mysql_enable=”YES”

Создаем таблицу

mysql_install_db

Нужно сразу дать права на каталог, иначе сервер просто не будет запускаться, ссылаясь, что не может создать файл в каталоге /tmp, я очень долго искал
причину, почему он не хотел запускаться. Оказалось все просто, нужно было всего лишь сделать

chown -R mysql:mysql /var/db/mysql

Далее, запускаем

mysql_secure_installation

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

Ниже требуется пароль как бы рута, который будет рулить всем мускулем, но так как мы ставим Мускуль в первый раз и рутовый пароль для Мускуля еще не
установлен, просто жмем Ентер при запросе пароля

In order to log into MySQL to secure it, we’ll need the current
password for the root user.  If you’ve just installed MySQL, and
you haven’t set the root password yet, the password will be blank,
so you should just press enter here.

Enter current password for root (enter for none):

Далее спрашивается, нужно ли заводить пароль. Конечно же отвечаем да и задаем пароль.

Setting the root password ensures that nobody can log into the MySQL
root user without the proper authorisation.

Set root password? [Y/n]Y
New password:
Re-enter new password:
Password updated successfully!
Reloading privilege tables..
… Success!

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

By default, a MySQL installation has an anonymous user, allowing anyone
to log into MySQL without having to have a user account created for
them.  This is intended only for testing, and to make the installation
go a bit smoother.  You should remove them before moving into a
production environment.

Remove anonymous users? [Y/n]Y
… Success!

Говорится, что по идее рут пользователь Мускуля может подключаться к базе только локально. Конечно же отвечаем утвердительно. Для справки – можно
подключаться через SSH и заходить под рутом, при утвердительном ответе это все будет работать. Просто видел на форумах, что люди спрашивают – как же
тогда удаленно работать с базой, если отключить удаленный вход для рута.

Normally, root should only be allowed to connect from ‘localhost’.  This
ensures that someone cannot guess at the root password from the network.

Disallow root login remotely? [Y/n]Y
… Success!

По умолчанию создается база test, к которой имеет доступ любой пользователь. она нужна только для тестирования и ее можно удалить. Отвечаем
утвердительно.

By default, MySQL comes with a database named ‘test’ that anyone can
access.  This is also intended only for testing, and should be removed
before moving into a production environment.

Remove test database and access to it? [Y/n]Y

В общем – отвечаем утвердительно :)
Reloading the privilege tables will ensure that all changes made so far
will take effect immediately.

Reload privilege tables now? [Y/n] Y
… Success!

Cleaning up…

All done!  If you’ve completed all of the above steps, your MySQL
installation should now be secure.

Thanks for using MySQL!

Все, Мускуль чутка настроен и готов к работе.

Далее, нужно создать базу данных для работы WordPress.

mysql -uroot -p   здесь вводится пароль рута, который вводился при инсталяции MySQL, не обычного пользователя root.

появится приглашение MySQL

mysql>

вводим такое

mysql> CREATE DATABASE databasename; где databasename – имя вашей базы. Можете назвать blog, wordpress. На вышу фантазию. Не забудте точку с запятой
(;) после имени базы.

Далее, даем пользователю права на доступ к базе

mysql> GRANT ALL PRIVILEGES ON databasename.* TO “wordpressusername”@”hostname”
-> IDENTIFIED BY “password”; databasename – имя созданной выше базы, wordpressusername – имя пользователя, который будет работать с базой, например
vasia. В 99% случаеях hostname нужно заменить на localhost. password – пароль для доступа к базе datebasename. Опять же не забываем про (;) после
IDENTIFIED BY “password”.

Последний шаг

mysql> FLUSH PRIVILEGES;

и выходим отсюда

mysql> EXIT

Все, с MySQL разобрались.

Теперь ставим Apache

cd /usr/ports/www/apache22
make install clean

Апач поставился, пока ничего не трогаем, потом к нему вернемся ;)

Ставим PHP

cd /usr/ports/lang/php5

make install clean

В меню сборки отмечаем строчку “Build Apache module”

Жмем Ок, ждем, когда РНР соберется.

Ковыряемся в файле /usr/local/etc/apache22/httpd.conf

Там должна появится строчка в секции Dynamic Shared Object (DSO) Support

LoadModule php5_module        libexec/apache22/libphp5.so

В ServerAdmin вписываем адрес, по которому будут слать вам письма в случае чего
В ServerName адрес, который вы зарегестрировали. Я через DynDNS взял себе genideb.homeunix.org, соответственно вписываю его
В DocumentRoot пишем адрес до WordPress. Правда мы его еще не ставили, если будете куда-то его перемещать, то указываете нужную папку. Если нет, то по
умолчанию все ложится в /usr/local/www/data/wordpress/. Я лично ничего никуда не перемещал, все работает в стандартной папке.

Находим строчку <IfModule dir_module>

Она должна выглядеть так

<IfModule dir_module>
DirectoryIndex index.php index.html
</IfModule>

Еще находим такую строчку

<Directory “/usr/local/www/data/wordpress/”>

Добавляем или меняем значения на

Options Indexes FollowSymLinks
AllowOverride All
Order allow,deny
Allow from all

И в конец конфига добавить такую строчку

AddType application/x-httpd-php .php

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

Итак, теперь еще пару приложений

cd /usr/ports/databases/php5-mysqli/
make install clean

cd /usr/ports/www/wordpress
make install clean

Копируем конфиг WordPress’a

cd /usr/local/www/data/wordpress/
mv wp-config-sample.php wp-config.php

Открываем wp-config.php в текстовом редакторе и редактируем следующие строчки

define(‘DB_NAME’, ‘Здесь пишем имя созданной базы в MySQL’);
define(‘DB_USER’, ‘Здесь имя пользователя для работы с базой’);
define(‘DB_PASSWORD’, ‘Здесь пароль для доступа к базе’);
define(‘DB_HOST’, ‘localhost’);
define(‘DB_CHARSET’, ‘utf8′);
define(‘DB_COLLATE’, ”);

Чуть ниже находим такие строчки

define(‘AUTH_KEY’,         ”);
define(‘SECURE_AUTH_KEY’,  ”);
define(‘LOGGED_IN_KEY’,    ”);
define(‘NONCE_KEY’,        ”);
define(‘AUTH_SALT’,        ”);
define(‘SECURE_AUTH_SALT’, ”);
define(‘LOGGED_IN_SALT’,   ”);
define(‘NONCE_SALT’,       ”);

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

define(‘AUTH_KEY’, ‘:dr+%/5V4sAUG-gg%aS*v;&xGhd%{YKC^Z7KKGh j>k[.Nf$y7iGKdJ3c*[Kr5Bg');
define('SECURE_AUTH_KEY', 'TufWOuA _.t>#+hA?^|3RfGTm>@*+S=8\"\'+\"}]<m#+}V)p:Qi?jXLq,<h\\`39m_(‘);
define(‘LOGGED_IN_KEY’, ‘S~AACm4h1;T^\”qW3_8Zv!Ji=y|)~5i63JI |Al[(<YS<2V^$T])=8Xh2a:b:}U_E’);
define(‘NONCE_KEY’, ‘k1+EOc-&w?hG8j84>6L9v\”6C89NH?ui{*3\\(t09mumL/fFP_!K$JCEkLuy ={x{0′);

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

Создаем в папке (если вы никуда не перемещали WordPress) /usr/local/www/date/wordpress/
файл .htaccess и прописываем в нем такое

DirectoryIndex index.php
Options -Indexes

Стартуем все это

запускаем MySQL

/usr/local/etc/rc.d/mysql-server start

Запускаем Apache

apachectl start

Для запуска установки WordPress запускаем браузер, набираем имявашегосайта/wp-admin/install.php – если только вы не перекинули файлы установки в
поддиректорию, например имявашегосайта/blog/ тогда адрес должен быть имявашегосайта/blog/wp-admin/install.php

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

Ссылки по теме

Опции Apache и просто всякое интересное
Настройки MySQL
Установка WordPress, официальная документация
Быстрая установка WordPress