На этом уроке мы расскажем, как установить CachetHQ на CentOS 7.1 VPS с MariaDB, PHP-FPM 5.6 и Nginx. CachetHQ является открытой системой, построенной на вершине Laravel 5. Это руководство должно работать на других системах Linux VPS, но была испытана и написана для CentOS 7 VPS.
Войдите на свой VPS через SSH
ssh user@myVPS
Обновите систему и установите необходимые пакеты
[furious]$ sudo yum -y upgrade [furious]$ sudo yum install git curl
Установите MariaDB
MariaDB 5.5 поставляется по умолчанию с хранилищем CentOS 7, чтобы установить ее, просто запустите:
[furious]$ sudo yum install mariadb-server
Чтобы запустить службу MariaDB и включить ее в автозапуск, выполните следующие команды:
[furious]$ sudo systemctl start mariadb.service [furious]$ sudo systemctl enable mariadb.service
Выполните следующую команду, чтобы защитить установку:
[furious]$ sudo mysql_secure_installation
Далее, нам необходимо создать базу данных для нашего экземпляра CachetHQ.
[furious]$ mysql -uroot -p MariaDB [(none)]> CREATE DATABASE cachet; MariaDB [(none)]> GRANT ALL PRIVILEGES ON cachet.* TO 'cachetuser'@'localhost' IDENTIFIED BY 'cachetuser_passwd'; MariaDB [(none)]> FLUSH PRIVILEGES; MariaDB [(none)]> \q
Установка PHP и Nginx
Nginx не доступен в хранилище CentOS 7 по умолчанию, так мы будем использовать официальный репозиторий Nginx:
[furious]$ sudo rpm -UVh http://nginx.org/packages/centos/7/noarch/RPMS/nginx-release-centos-7-0.el7.ngx.noarch.rpm [furious]$ sudo yum -y install nginx
Включить репозиторий Epel:
[furious]$ sudo yum install epel-release
CentOS 7 поставляется с PHP версии 5.4, чтобы иметь возможность установить последнюю версию PHP, версия 5.6 мы включим репозиторий Webtatic:
[furious]$ sudo rpm -Uvh https://mirror.webtatic.com/yum/el7/webtatic-release.rpm
Установка PHP 5.6 и все необходимые расширения:
[furious]$ sudo yum install php56w-cli php56w-process php56w-mcrypt php56w-mbstring php56w-common php56w-fpm php56w-xml php56w-opcache php56w-pecl-apcu php56w-pdo php56w-mysqlnd
Установите Composer
Composer является менеджером зависимостей для PHP, с помощью которого можно установить пакеты. Composer будет тянуть все необходимые библиотеки и зависимости, необходимые для вашего проекта.
[furious]$ curl -sS https://getcomposer.org/installer | php [furious]$ sudo mv composer.phar /usr/local/bin/composer
Установить узел Gulp и Bower
Нам нужно установить Gulp и Bower.
[furious]$ sudo yum install -y nodejs npm [furious]$ sudo npm install -g bower [furious]$ sudo npm install -g gulp
Установите CachetHQ
Создайте корневой каталог для вашего приложения.
[furious]$ mkdir -p ~/CachetHQ
Клонируйте репозиторий проекта из GitHub:
[furious]$ git clone https://github.com/cachethq/Cachet.git ~/CachetHQ [furious]$ cd ~/CachetHQ
Установите все зависимости:
[furious]$ composer install --no-dev -o
Скопируйте файл .env.example .env
[furious]$ cp .env.example .env
Сгенерируйте и установите ключ приложения:
[furious]$ php artisan key:generate
и отредактируйте соответствующие значения:
[furious]$ vim .env
APP_ENV=production APP_DEBUG=false APP_URL=http://localhost APP_KEY=SomeRandomString DB_DRIVER=mysql DB_HOST=localhost DB_DATABASE=cachet DB_USERNAME=cachetuser DB_PASSWORD=cachetuser_passwd CACHE_DRIVER=apc SESSION_DRIVER=file QUEUE_DRIVER=sync MAIL_DRIVER=smtp MAIL_HOST=mailtrap.io MAIL_PORT=2525 MAIL_USERNAME=null MAIL_PASSWORD=null
Запуск миграции базы данных и заполнения базы данных с данными выборки:
[furious]$ php artisan migrate [furious]$ php artisan db:seed
Постойте активы:
[furious]$ npm install [furious]$ bower install [furious]$ gulp
Настройка Nginx и PHP
Создайте новый пул PHP-FPM для вашего пользователя:
[furious]$ sudo vim /etc/php-fpm.d/your_users.conf
[your_user] user = ваш_пользователь group = ваш_пользователь listen = /var/run/php-fpm/your_user.sock listen.owner = ваш_пароль listen.group = ваш_пользователь listen.mode = 0666 pm = ondemand pm.max_children = 5 pm.process_idle_timeout = 10s; pm.max_requests = 200 chdir = /
Не забудьте изменить ваш_пользователь на ваше имя пользователя.
Перезапустите PHP-FPM
[furious]$ sudo systemctl restart php-fpm.service
Генерация сертификата SSL:
[furious]$ sudo mkdir -p /etc/nginx/ssl [furious]$ cd /etc/nginx/ssl [furious]$ sudo openssl genrsa -des3 -passout pass:x -out cachet.pass.key 2048 [furious]$ sudo openssl rsa -passin pass:x -in cachet.pass.key -out cachet.key [furious]$ sudo rm cachet.pass.key [furious]$ sudo openssl req -new -key cachet.key -out cachet.csr [furious]$ sudo openssl x509 -req -days 365 -in cachet.csr -signkey cachet.key -out cachet.crt
Затем создайте новый блок сервера Nginx:
[furious]$ sudo vim /etc/nginx/sites-available/CachetHQ.conf
server { listen 443 default; server_name CachetHQ; ssl on; ssl_certificate /etc/nginx/ssl/cachet.crt; ssl_certificate_key /etc/nginx/ssl/cachet.key; ssl_session_timeout 5m; ssl_ciphers 'AES128+EECDH:AES128+EDH:!aNULL'; ssl_protocols TLSv1 TLSv1.1 TLSv1.2; ssl_prefer_server_ciphers on; root /home/your_user/CachetHQ/public; index index.html index.htm index.php; charset utf-8; location / { try_files $uri $uri/ /index.php?$query_string; } location = /favicon.ico { access_log off; log_not_found off; } location = /robots.txt { access_log off; log_not_found off; } access_log /var/log/nginx/cachet.access.log; error_log /var/log/nginx/cachet.error.log; sendfile off; location ~ \.php$ { fastcgi_split_path_info ^(.+\.php)(/.+)$; fastcgi_pass unix:/var/run/php-fpm/your_user.sock; fastcgi_index index.php; include fastcgi_params; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; fastcgi_intercept_errors off; fastcgi_buffer_size 16k; fastcgi_buffers 4 16k; } location ~ /\.ht { deny all; } } server { listen 80; server_name CachetHQ; add_header Strict-Transport-Security max-age=2592000; rewrite ^ https://$server_name$request_uri? permanent; }
Не забудьте изменить your_user на имя вашего пользователя.
И, наконец, перезапустите Nginx:
[furious]$ sudo systemctl restart nginx.service
Вот и все. Вы успешно установили CachetHQ на вашем Centos 7 VPS. Если вы не измените имя пользователя и пароль по умолчанию, вы можете войти в систему с ‘test@test.com~~pobj’ и ‘test123’.
Для получения дополнительной информации о CachetHQ, пожалуйста , обратитесь на сайт CachetHQ.