В этом руководстве мы покажем вам, как установить CMS Bolt на CentOS 7 VPS с MariaDB, PHP 7 и Nginx в качестве веб — сервера. CMS Bolt представляет собой легким инструментом управления содержимым с открытым исходным кодом, написанный на PHP, и построенный на фреймворке Silex. Это руководство должно работать на других системах, основанных на Linux VPS, так же хорошо, но было испытано и написано для CentOS 7.
ssh user@vps_IP
yum update
Centos 7 поставляется с MariaDB 5.5 и в этом руководстве мы будем использовать последнюю версию MariaDB версии 10.2. Для того, чтобы установить пакет из официального репозитория MariaDB, откройте редактор и создайте следующий файл:
nano /etc/yum.repos.d/MariaDB.repo
[mariadb] name = MariaDB baseurl = http://yum.mariadb.org/10.2/centos7-amd64 gpgkey=https://yum.mariadb.org/RPM-GPG-KEY-MariaDB gpgcheck=1
После того, как репо добавиться, вы можете установить пакеты MariaDB с помощью следующей команды:
yum install MariaDB-server MariaDB-client
Когда установка будет завершена, запустите сервер базы данных MariaDB и включите его для запуска во время загрузки:
systemctl start mariadb systemctl enable mariadb
выполните следующую команду, чтобы защитить установку:
mysql_secure_installation
Далее, нам необходимо создать базу данных для нашей установки CMS Bolt.
mysql -uroot -p
MariaDB [(none)]> CREATE DATABASE bolt; MariaDB [(none)]> GRANT ALL PRIVILEGES ON bolt.* TO 'bolt'@'localhost' IDENTIFIED BY 'your_bolt_password'; MariaDB [(none)]> FLUSH PRIVILEGES; MariaDB [(none)]> \q
Nginx не доступна в официальных репозиториях CentOS, поэтому сначала нам нужно добавить репозиторий Epel, а затем установить пакет:
yum install epel-release yum install nginx
То же самое с сервисом MariaDB, запустите сервер Nginx и включите его для запуска во время загрузки:
systemctl start nginx systemctl enable nginx
CentOS 7 поставляется с PHP версии 5.4 и CMS Bolt требует PHP 5.5.9 или выше. Мы установим PHP 7.0 с помощью репозитория Webtatic. Чтобы включить репозиторий Webtatic, выполните следующую команду:
rpm -Uvh https://mirror.webtatic.com/yum/el7/webtatic-release.rpm
Установка PHP 7.0 и все необходимые расширения:
yum install php70w-cli php70w-intl php70w-gd php70w-fileinfo php70w-mcrypt php70w-mbstring php70w-common php70w-fpm php70w-xml php70w-opcache php70w-pdo php70w-posix php70w-mysqlnd
По умолчанию, PHP-FPM будет работать в качестве пользователя Apache. Так как мы используем Nginx, мы должны изменить пользователь апача на Nginx. Для того, чтобы внести изменения, мы можем использовать команды sed следующим образом:
sed -i 's/apache/nginx/g' /etc/php-fpm.d/www.conf
Наконец повторно запустим службу PHP-FPM и включим ее для запуска во время загрузки:
systemctl restart php-fpm systemctl enable php-fpm
Composer является менеджером зависимостей для PHP с помощью которого можно установить пакеты. Composer будет тянуть все необходимые библиотеки и зависимости, необходимые для вашего проекта.
curl -sS https://getcomposer.org/installer | php mv composer.phar /usr/local/bin/composer
Мы установим CMS Bolt с помощью команды «composer create-project»:
composer create-project bolt/composer-install:^3.3 /var/www/MYBOLTAPP --prefer-dist
Установщик спросит вас, хотите ли вы использовать стандартную структуру папок Bolt. Выберите «Да» и продолжите установку.
Do you want to use Bolt's standard folder structure? (yes/no) [yes]: > yes
По умолчанию Bolt настроен на использование базы данных SQLite, так как мы будем использовать базу данных MySQL, мы должны изменить настройки в файле app/config/config.yml
и ввести данные в базе данных, которую мы создали ранее:
nano /var/www/MYBOLTAPP/app/config/config.yml
# database: # driver: sqlite # databasename: bolt database: driver: mysql username: bolt password: your_bolt_password databasename: bolt
Установите правильные собственности и разрешения со следующими командами:
chown -R nginx: /var/www/MYBOLTAPP find /var/www/MYBOLTAPP -type d -exec chmod 755 {} \; find /var/www/MYBOLTAPP -type f -exec chmod 644 {} \;
Создайте новый блок сервера Nginx:
nano /etc/nginx/conf.d/MYBOLTAPP.conf
server { listen 80; server_name MYBOLTAPP; root /var/www/MYBOLTAPP/public; index index.php; access_log /var/log/nginx/MYBOLTAPP.access.log; error_log /var/log/nginx/MYBOLTAPP.error.log; location / { try_files $uri $uri/ /index.php?$query_string; } location = /bolt { try_files $uri /index.php?$query_string; } location ^~ /bolt/ { try_files $uri /index.php?$query_string; } location ^~ /thumbs { try_files $uri /index.php; #?$query_string; access_log off; log_not_found off; expires max; add_header Pragma public; add_header Cache-Control "public, mustrevalidate, proxy-revalidate"; add_header X-Koala-Status sleeping; } location ~* ^.+\.(?:atom|bmp|bz2|css|doc|eot|exe|gif|gz|ico|jpe?g|jpeg|jpg|js|map|mid|midi|mp4|ogg|ogv|otf|png|ppt|rar|rtf|svg|svgz|tar|tgz|ttf|wav|woff|xls|zip)$ { access_log off; log_not_found off; expires max; add_header Pragma public; add_header Cache-Control "public, mustrevalidate, proxy-revalidate"; add_header X-Koala-Status eating; } location = /(?:favicon.ico|robots.txt) { log_not_found off; access_log off; } location ~ /index.php/(.*) { rewrite ^/index.php/(.*) /$1 permanent; } location ~ /\. { deny all; } location ~ /\.(htaccess|htpasswd)$ { deny all; } location ~ /\.(?:db)$ { deny all; } location ~* /(.*)\.(?:markdown|md|twig|yaml|yml)$ { deny all; } location ~ [^/]\.php(/|$) { try_files /index.php =404; fastcgi_split_path_info ^(.+?\.php)(/.*)$; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; fastcgi_param HTTP_PROXY ""; fastcgi_param HTTPS $https if_not_empty; fastcgi_pass 127.0.0.1:9000; include fastcgi_params; } }
Проверьте конфигурацию Nginx и перезапустите Nginx:
nginx -t service nginx restart
После того, как установка будет завершена, перейдите по адресу HTTP://MYBOLTAPP и зарегистрируйте первого пользователя. Административный доступ автоматически предоставляется первому зарегистрированному пользователю.
Вот и все. Вы успешно установили CMS Bolt на вашем CentOS 7 VPS. Для получения дополнительной информации о том, как управлять установкой CMS Bolt, пожалуйста, обратитесь к официальной документации CMS Bolt.