В сегодняшней простой статье мы рассмотрим шаги, необходимые для установки и настройки базового стека LEMP на OpenSUSE VPS. Стек LEMP является синонимом сервера LEMP или веб – сервера LEMP. Он включает Linux, Nginx, MySQL (MariaDB) и PHP.
ПОДГОТОВКА
Войдите на сервер с помощью SSH:
ssh root@server_ip
Перед тем как начать, введите следующую команду, чтобы проверить есть ли у вас правильная версия ОС установленная на вашем компьютере:
cat /etc/issue
Вывод команды. Конечно, если вы используете другую версию OpenSUSE выход будет показывать эту версию:
Welcome to openSUSE 13.1 "Bottle" - Kernel \r (\l)
А теперь без лишних слов, мы можем начать путем удаления предварительно установленного Apache веб-сервера, так как мы заменим его Nginx.
Для этого, во-первых, мы остановить службу, отключим его от автозагрузке, а затем удалить его. Для этого введите следующие команды в интерфейсе командной строки:
systemctl stop apache2.service systemctl disable apache2.service zypper rm apache2
Обновите систему
Теперь, когда веб-сервер Apache был удален, мы можем обновить систему:
zypper up
Когда обновления закончены, можно приступать к настройке стека LEMP путем установки MySQL. На нашем большом опыте в работе с операционной системой, которой является OpenSUSE мы наткнулись на ошибки и не удалось запустить MySQL из-за отсутствия зависимостей PERL. В некоторых случаях мы получали следующее сообщение об ошибке:
FATAL ERROR: please install the following Perl modules before executing /usr/bin/mysql_install_db: Sys::Hostname Creation of MySQL databse in /var/lib/mysql failed mysql.service: control process exited, code=exited status=1
Чтобы избежать этой ошибки, просто установите зависимость PERL Sys::Hostnameс помощью следующей команды:
zypper install perl-Sys-Hostname-Long
С этим заботились, теперь вы можете продолжить установку MySQL. Выполнить:
zypper install -y mysql-community-server mysql-community-server-client
Включите MySQL для запуска при загрузке системы, а затем запустить службу:
systemctl enable mysql.service systemctl start mysql.service
Выполните первоначальную настройку MySQL. Следуйте указаниям на экране следующим образом:
mysql_secure_installation steps: - Enter current password for root (enter for none): - Set root password? [Y/n] Y - Remove anonymous users? [Y/n] Y - Disallow root login remotely? [Y/n] Y - Remove test database and access to it? [Y/n] Y - Reload privilege tables now? [Y/n] Y
Далее, давайте установим Nginx:
zypper install -y nginx
Включите Nginx для запуска при загрузке:
systemctl enable nginx.service
В случае ошибки ‘/sbin/insserv failed, exit code 1’, введите следующую команду:
insserv syslog
и повторите:
systemctl enable nginx.service
Затем запустите Nginx:
systemctl start nginx.service
Теперь переходим к http://<yourdomain.ru> или http://<your_ip_address> из вашего браузера. Вы должны увидеть содержимое файла index.html, который хранится в корневом каталоге документов для Nginx (/srv/www/htdocs/).
Теперь мы будем редактировать файл конфигурации Nginx. Убедитесь, что он напоминает ту, которую мы публикуем, за исключением если вы уверены, что вы хотите, чтобы он был скорректирован в соответствии с вашими потребностями. Заметим, что это только первоначальная конфигурация и он может изменяться в зависимости от веб-сайта / приложения.
vim /etc/nginx/nginx.conf
worker_processes 2; sendfile on; keepalive_timeout 65; gzip on; include conf.d/*.conf; server { listen 80; server_name _; #charset koi8-r; location / { root /srv/www/htdocs/; index index.php index.html index.htm; } error_page 500 502 503 504 /50x.html; location = /50x.html { root /srv/www/htdocs/; } # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000 # location ~ \.php$ { root /srv/www/htdocs/; fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; } # deny access to .htaccess files, if Apache's document root # concurs with nginx's one # location ~ /\.ht { deny all; } }
Сохраните и закройте файл. Проверьте конфигурацию Nginx:
nginx -t
Если все в порядке, подключите сервис Nginx , перезагружая его с помощью следующей команды:
systemctl reload nginx.service
Ваш следующий шаг заключается в установке PHP-FPM. Вы можете сделать это с помощью приведенных ниже команд:
zypper install -y php5-pear php5-gd php5-mbstring php5-mcrypt php5-sockets php5-xmlrpc php5-zlib php5-curl php5-bz2 php5-ftp php5-sysvsem php5-fpm php5-mysql
Запустите конфигурацию PHP-FPM путем копирования файла конфигурации:
cp -v /etc/php5/fpm/php-fpm.conf.default /etc/php5/fpm/php-fpm.conf
Теперь отредактируйте PHP-fpm.conf и измените значения пользователя и группы из nobody в Nginx . Также включите ведение журнала ошибок. Откройте конфигурационный файл в текстовом редакторе, например vim:
vim /etc/php5/fpm/php-fpm.conf
Раскомментируйте и отредактируйте следующую строку, чтобы установить правильный путь к файлу журнала:
error_log = /var/log/php-fpm.log
После того, как вы измените значения пользователя и группы, соответствующие строки должны выглядеть следующим образом:
; Unix user/group of processes ; Note: The user is mandatory. If the group is not set, the default user's group ; will be used. user = nginx group = nginx
У OpenSUSE 13.1 нет php.ini файла для PHP-FPM. Давайте изменим это. Скопируйте файл php.ini из /etc/php5/cli/ в /etc/php5/fpm/, как показано ниже:
cp /etc/php5/cli/php.ini /etc/php5/fpm/
Теперь отредактируйте файл php.ini:
vim /etc/php5/fpm/php.ini
Измените значение параметра cgi.fix_pathinfo на 0. По умолчанию он будет закомментирован и установлено значение на 1, это практически гарантирует, что PHP попытается выполнить ближайший доступный файл, если запрошенный файл PHP не может быть найден. Сохраните и закройте файл после редактирования.
Включите службу на запуск при загрузке, а затем запустить его:
systemctl enable php-fpm.service systemctl start php-fpm.service
Затем создайте файл тест PHP:
vim /srv/www/htdocs/index.php
<?php phpinfo(); ?>
Откройте http://<yourdomain.ru> или http://<your_ip_address> в вашем веб-браузере. Если вы внимательно следили, вы должны увидеть стартовую страницу phpinfo.
Вот и все. Мы успешно создали стек LEMP на нашем OpenSUSE VPS.
PS . Если вам понравился этот пост, пожалуйста поделитесь им с друзьями в социальных сетях помощью кнопок на левой стороне поста или просто оставьте комментарий ниже. Заранее благодарю.