• Build Laravel Blog PigJian by PHP7 and Nginx on Ubuntu


        Recently, I found an interesting framework Laravel written by PHP. i have never used PHP to write any 

    software. I searched the Internet to find any Blog written by Laravel. At last, I found one called PJ Blog,

    which is written by Pigjian. I tried to build it with my curiosity.

    1.Install PHP7

    sudo apt-get install php7.0-fpm php7.0-mysql php7.0-common php7.0-mbstring php7.0-gd php7.0-json php7.0-cli php7.0-curl libapache2-mod-php7.0 php7.0-xml php7.0-mcrypt

    2.Install Nginx(openresty)

    wget https://openresty.org/download/openresty-1.11.2.1.tar.gz
    tar -xvf openresty-1.11.2.1.tar.gz
    apt-get install -y libreadline-dev libncurses5-dev libpcre3-dev libssl-dev perl make build-essential
    apt-get install -y libxslt-dev libxml2-dev 
    apt-get install -y libgd-dev libgd2-xpm-dev
    apt-get install -y geoip-database libgeoip-dev
    ./configure 
    --prefix=/usr/local/openresty 
    --with-debug --with-cc-opt='-DNGX_LUA_USE_ASSERT -DNGX_LUA_ABORT_AT_PANIC -O2' 
    --conf-path=/etc/nginx/nginx.conf 
    --error-log-path=/var/log/nginx/error.log 
    --http-client-body-temp-path=/var/lib/nginx/body 
    --http-fastcgi-temp-path=/var/lib/nginx/fastcgi 
    --http-log-path=/var/log/nginx/access.log 
    --http-proxy-temp-path=/var/lib/nginx/proxy 
    --http-scgi-temp-path=/var/lib/nginx/scgi 
    --http-uwsgi-temp-path=/var/lib/nginx/uwsgi 
    --lock-path=/var/lock/nginx.lock 
    --pid-path=/var/run/nginx.pid 
    --with-pcre-jit 
    --with-http_addition_module 
    --with-http_dav_module 
    --with-http_geoip_module 
    --with-http_gzip_static_module 
    --with-http_image_filter_module 
    --with-http_realip_module 
    --with-http_stub_status_module 
    --with-http_ssl_module 
    --with-http_sub_module 
    --with-http_xslt_module 
    --with-ipv6 
    --with-mail 
    --with-mail_ssl_module
    make && make install
    mkdir -p /var/lib/nginx/body
    mkdir -p /var/log/nginx
    ln -s /usr/local/openresty/nginx/sbin/nginx /usr/bin/nginx

    3.Install Composer

    php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"
    php -r "if (hash_file('SHA384', 'composer-setup.php') === '55d6ead61b29c7bdee5cccfb50076874187bd9f21f65d8991d46ec5cc90518f447387fb9f76ebae1fbbacf329e583e30') { echo 'Installer verified'; } else { echo 'Installer corrupt'; unlink('composer-setup.php'); } echo PHP_EOL;"
    php composer-setup.php
    php -r "unlink('composer-setup.php');"
    
    mv composer.phar /usr/local/bin/composer        
    composer -V

    4.Download and Install  PJ Blog

    composer create-project jcc/blog
    composer update nothing
    composer install -vvv
    npm install
    cp .env.example .env   # modify database.
    php artisan blog:install

    5. Configure Nginx

    groupadd www-data
    useradd www-data -g www-data
    user www-data www-data;
    worker_processes  1;
    
    error_log  /var/logs/nginx/error.log;
    #error_log  /var/logs/nginx/error.log  notice;
    #error_log  /var/logs/nginx/error.log  info;
    
    pid        /var/logs/nginx/nginx.pid;
    
    
    events {
        worker_connections  1024;
    }
    
    http {
    
        include mime.types;
        default_type  application/octet-stream;
    
        charset utf-8;
    
        log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                          '$status $bytes_sent $request_length "$http_referer" '
                          '"$http_user_agent" "$http_x_forwarded_for" $request_time $upstream_response_time';
    
        log_format proxy '$http_x_real_ip - $remote_user [$time_local] "$request" '
                          '$status $bytes_sent $request_length "$http_referer" '
                          '"$http_user_agent" "$http_x_forwarded_for" $request_time $upstream_response_time';
    
        sendfile        on;
        tcp_nopush      on;
        tcp_nodelay     on;
    
        keepalive_timeout  30;
    
        gzip  on;
        gzip_static on;
        gzip_http_version 1.0;
        gzip_vary on;
        gzip_comp_level 5;
        gzip_min_length 1024;
        gzip_buffers 4 16k;
        gzip_types text/plain application/json application/x-javascript application/javascript text/css image/png image/jpeg image/gif;
    
        proxy_buffer_size 64k;
        proxy_buffers 4 512k;
       
        fastcgi_connect_timeout 300;
        fastcgi_send_timeout 300;
        fastcgi_read_timeout 300; 
    
        server {
            listen 80 default_server;
    
            root /var/www/blog/public;
            index index.php index.html index.htm;
    
            server_name localhost;
    
            location / {
                try_files $uri $uri/ /index.php?$query_string;
                include mime.types;
            }
    
            location ~ .php$ {
                try_files $uri /index.php =404;
                fastcgi_split_path_info ^(.+.php)(/.+)$;
                fastcgi_pass unix:/var/run/php/php7.0-fpm.sock;
                fastcgi_index index.php;
                fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
                include fastcgi_params;
            }
        }
    }
    mv blog /var/www/
    chown -R www-data:www-data /var/www/blog
    chmod -R 775 /var/www/blog/storage

    More information, click here

    Link: http://www.cnblogs.com/zhuangzebo/p/6281986.html

  • 相关阅读:
    WMI系统管理工具介绍和获取机器码
    QListWidget高性能加载图片数据
    2.5偏差方差分解
    QT图片旋转动画
    Qt实现数字滚动动画效果
    Qt动画使用总结
    线性回归--经验最小化,结构最小化,最大似然估计,最大后验估计
    获取国家2019年最新的省、市、区/县、街道、小区/居委会信息 包括港澳台
    .net 利用Emit将object转为DbParameter,DataTable转为List<>
    c#简单操作MongoDB_2.4
  • 原文地址:https://www.cnblogs.com/zhuangzebo/p/6281986.html
Copyright © 2020-2023  润新知