Skip to content

phwoolcon/demo

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

31 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Phwoolcon Demo

Installation

Let's take the installation on Ubuntu as an example.

1. Install php7

add-apt-repository ppa:ondrej/php
apt update
apt install php7.0-fpm php7.0-gd php7.0-cli php7.0-curl php7.0-dev php7.0-json php7.0-mbstring php7.0-mysql php7.0-xml php7.0-zip php-redis

2. Install phalcon

curl -s https://packagecloud.io/install/repositories/phalcon/stable/script.deb.sh | bash
apt install php7.0-phalcon

3. Install swoole

pecl install swoole
echo 'extension = swoole.so' > /etc/php/7.0/mods-available/swoole.ini
ln -s /etc/php/7.0/mods-available/swoole.ini /etc/php/7.0/cli/conf.d/20-swoole.ini
ln -s /etc/php/7.0/mods-available/swoole.ini /etc/php/7.0/fpm/conf.d/20-swoole.ini

4. Install composer

wget -c https://getcomposer.org/composer.phar -O /usr/bin/composer
chmod +x /usr/bin/composer

5. Install nginx

add-apt-repository ppa:nginx/stable
apt update
apt install nginx

5.1. Add nginx upstream php7

vim /etc/nginx/conf.d/upstream.conf
upstream php7 {
    #this should match value of "listen" directive in php-fpm pool
    server unix:/run/php/php7.0-fpm.sock;
}

5.2. Configure nginx entrance

vim /etc/nginx/sites-available/yoursite.dev
map $http_x_forwarded_proto $frontend_https {
    default '';
    https on;
}

server {
    listen 80;
    server_name     yoursite.dev;
    root /srv/http/yoursite.dev/public;
    index  index.php index.html index.htm;

    access_log off;
    error_log /var/log/nginx/yoursite.dev_error.log;

    location / {
        try_files $uri $uri/ /index.php?$query_string;
    }

    location ~ \.php$ {
        include snippets/fastcgi-php.conf;
        fastcgi_pass php7;
        access_log /var/log/nginx/yoursite.dev_access.log;
        fastcgi_param USE_SERVICE 1;
        fastcgi_param HTTPS $frontend_https;
    }

    location ~ /^\. { deny all; }

    location ~* \.(js|css|swf|eot|ttf|otf|woff|woff2)$ {
        add_header 'Cache-Control' 'public';
        add_header 'X-Frame-Options' 'ALLOW-FROM *';
        add_header 'Access-Control-Allow-Origin' '*';
        add_header 'Access-Control-Allow-Credentials' 'true';
        add_header 'Access-Control-Allow-Methods' 'GET, POST, OPTIONS';
        add_header 'Access-Control-Allow-Headers' 'DNT,X-CustomHeader,Keep-Alive,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type';
        expires +1w;
    }
}

5.3. Enable site entrance

ln -s /etc/nginx/sites-available/yoursite.dev /etc/nginx/sites-enabled/yoursite.dev
nginx -t
nginx -s reload

6. Install Phwoolcon framework

cd /srv/http
git clone git@github.com:phwoolcon/bootstrap.git yoursite.dev

7. Install phwoolcon/demo

cd yoursite.dev
bin/import-package phwoolcon/demo
composer update

8. Install MySQL

apt install mysql-server-5.7 mysql-client-5.7

8.1. Create database and DB user

mysql -uroot -p
create database your_db_name;
GRANT ALL PRIVILEGES ON your_db_name.*  To 'your_db_user'@'%' IDENTIFIED BY 'your_db_pass';

9. Modify project configurations

vim app/config/production/database.php
<?php
return [
    'default' => 'mysql',
    'connections' => [
        'mysql' => [
            'host'       => '127.0.0.1',    // Use real server
            'username'   => 'your_db_user', // Use real username
            'password'   => 'your_db_pass', // Use real password
            'dbname'     => 'your_db_name', // Use real db name
        ],
    ],
    'distributed' => [
        'node_id' => '001',
    ],
    'query_log' => false,
];
vim app/config/production/payment.php
<?php
return [
    'gateways' => [
        'alipay' => [
            // Fill real merchant info here
            'partner' => 'PARTNER_ID',
            'seller_id' => 'seller@phwoolcon.com',
            'private_key' => '-----BEGIN RSA PRIVATE KEY-----
YOUR_PRIVATE_KEY_HERE
-----END RSA PRIVATE KEY-----',
            'ali_public_key' => '-----BEGIN PUBLIC KEY-----
ALI_PUBLIC_KEY_HERE
-----END PUBLIC KEY-----',
        ],
    ],
];

10. Install project DB stuff

bin/dump-autoload
bin/cli migrate:up
bin/dump-autoload