Для организации web сервера установим на CentOS 7 связку nginx + php-fpm. Подразумевается, что у вас уже есть настроенный сервер CentOS 7. Связка nginx и php fpm дает большую производительность, нежели apache с php.
Перед установкой web сервера необходимо обновить все пакеты.
# yum update
Устанавливаем Nginx.
Ставим непосредственно web сервер:
# yum install -y nginx
Добавляем в автозагрузку:
# systemctl enable nginx.service
Запускаем:
# systemctl start nginx.service
Теперь можно зайти на тестовую страничку, чтобы убедиться, что nginx работает:
http://ip_сервера
Не забудьте открыть 80-й порт на фаерволе.
Настраиваем Nginx:
Открываем:
# nano /etc/nginx/nginx.conf
И приводим его к следующему виду:
user nginx; worker_processes auto; error_log /var/log/nginx/error.log; pid /run/nginx.pid; include /usr/share/nginx/modules/*.conf; events { worker_connections 1024; } http { log_format main "$remote_addr - $remote_user [$time_local] "$request" " "$status $body_bytes_sent "$http_referer" " ""$http_user_agent" "$http_x_forwarded_for""; access_log /var/log/nginx/access.log main; sendfile on; tcp_nopush on; tcp_nodelay on; keepalive_timeout 65; types_hash_max_size 2048; client_max_body_size 100m; include /etc/nginx/mime.types; default_type application/octet-stream; gzip on; gzip_disable "msie6"; gzip_min_length 1280; gzip_vary on; gzip_proxied any; gzip_comp_level 6; gzip_buffers 16 8k; gzip_http_version 1.1; gzip_types text/plain text/css application/json application/x-javascript text/xml application/xml application/xml+rss text/javascript; include /etc/nginx/conf.d/*.conf; server { listen 80 default_server; listen [::]:80 default_server; server_name site.ru; root /var/www/web; index index.php index.html index.htm; client_max_body_size 100m; access_log /var/log/nginx/site.ru/access.log main; error_log /var/log/nginx/qery.ru/error.log; include /etc/nginx/default.d/*.conf; location / { try_files $uri $uri/ /index.php$is_args$args; } location ~* ^.+.(js|css|png|jpg|jpeg|gif|ico)$ { access_log off; expires max; } location ~ \.php$ { fastcgi_pass unix:/var/run/php-fpm/php5-fpm.sock; include fastcgi_params; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; fastcgi_param SCRIPT_NAME $fastcgi_script_name; try_files $uri =404; } location = /favicon.ico { log_not_found off; access_log off; } location = /robots.txt { allow all; log_not_found off; access_log off; } location ~ /\.ht { deny all; } } }
Не забудьте изменить site.ru на свой домен.
Перезапускаем nginx:
# systemctl restart nginx.service
Устанавливаем PHP 7 на сервер
Все изменения в PHP версии 7 с 5 версией можно прочитать здесь.
Т.к. в CentOS 7 по умолчанию нет версии PHP 7, то подключим дополнительный репозиторий:
# yum install epel-release # rpm -Uvh http://rpms.famillecollet.com/enterprise/remi-release-7.rpm # rpm -Uvh https://mirror.webtatic.com/yum/el7/webtatic-release.rpm
Устанавливаем сам интерпретатор PHP 7:
# yum install php70w
Ставим дополнительные пакеты:
# yum install php70w-mysql php70w-xml php70w-soap php70w-xmlrpc # yum install php70w-mbstring php70w-json php70w-gd php70w-mcrypt
Настраиваем PHP 7
Открываем
# nano /etc/php-fpm.d/www/conf
И приводим к следующему виду:
[www] user = nginx group = nginx listen = /var/run/php-fpm/php5-fpm.sock listen.owner = nginx listen.group = nginx listen.mode = 0660 listen.allowed_clients = 127.0.0.1 pm = dynamic pm.max_children = 50 pm.start_servers = 5 pm.min_spare_servers = 5 pm.max_spare_servers = 35 php_flag[display_errors] = off php_admin_value[error_log] = /var/log/php-fpm/www-error.log php_admin_flag[log_errors] = on php_admin_value[upload_tmp_dir] = /tmp php_value[session.save_handler] = files php_value[session.save_path] = /var/lib/php/session php_value[soap.wsdl_cache_dir] = /var/lib/php/wsdlcache php_admin_value[cgi.fix_pathinfo] = 0
Добавляем php-fpm в автозагрузку:
# systemctl enable php-fpm.service
И запускаем:
# systemctl start php-fpm.service
Проверка работы
Создаем файл в папке:
# nano /var/www/index.php
Со следующим содержимым:
<php phpinfo(); ?>
Открываем свой сайт в браузере и видим следующее:
Устанавливаем MariaDB 10.1
Создаем файл
# nano /etc/yum.repos.d/mariaDB.repo
Со следующим содержимым:
# MariaDB 10.1 CentOS repository list - created 2016-11-20 15:36 UTC # <a href="http://downloads.mariadb.org/mariadb/repositories/">http://downloads.mariadb.org/mariadb/repositories/</a> [mariadb] name = MariaDB baseurl = <a href="http://yum.mariadb.org/10.1/centos7-amd64">http://yum.mariadb.org/10.1/centos7-amd64</a> gpgkey=<a href="https://yum.mariadb.org/RPM-GPG-KEY-MariaDB">https://yum.mariadb.org/RPM-GPG-KEY-MariaDB</a> gpgcheck=1
Устанавливаем:
# yum install MariaDB-server MariaDB-client
Настраиваем MariaDB
Открываем
# nano /etc/my.cnf.d/server.cnf
и настраиваем следующими настройками
[mysqld] datadir=/var/lib/mysql port=3306 sql_mode="STRICT_TRANS_TABLES,NO_ENGINE_SUBSTITUTION" default_storage_engine=innodb innodb_buffer_pool_size=494M innodb_log_file_size=50M character-set-server=utf8 innodb_flush_log_at_trx_commit = symbolic-links=0 [client] port=3306
Добавляем сервер БД в автозагрузку
# systemctl enable mariadb
Запускаем:
# systemctl start mariadb
На этом все, настройка nginx + php-fpm на CentOS7 закончена.
Комментарии