zoukankan      html  css  js  c++  java
  • 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

  • 相关阅读:
    List
    集合
    layui树状组件tree回显如果子节点选中,当前主节点下所有元素都会选中问题修复
    layui富文本编辑器提交时无法获取到值
    thinkphp6+layui富文本编辑器页面回显显示HTML标签
    layui获取树形菜单所有选中的值
    php7将二维数组转为树状数组
    jq处理img标签找不到图片,显示指定图片
    thinkphp6根据访问设备不同访问不同模块
    layui怎么进入页面监听select的值然后重新渲染页面
  • 原文地址:https://www.cnblogs.com/zhuangzebo/p/6281986.html
Copyright © 2011-2022 走看看