openwrt安裝nginx+php+mysql教程

  1. opkg update
    php


  2. opkg install php5 php5-mod-gd php5-mod-session php5-mod-pdo php5-mod-pdo-mysql php5-mod-mysql php5-mod-mcrypt php5-mod-mbstring php5-fastcgi php5-cgi php5-mod-xml php5-mod-ctype php5-mod-curl php5-mod-exif php5-mod-ftp php5-mod-iconv php5-mod-json php5-mod-sockets php5-mod-sqlite3 php5-mod-tokenizer php5-mod-zip
    html


  3. opkg install mysql-server 
    mysql


  4. opkg install nginx spawn-fcgi zoneinfo-core zoneinfo-asia
    nginx


  5. opkg install shadow-groupadd shadow-useradd
    web


  6. groupadd www
    sql

  7. useradd -g www www
    數據庫

  8. chown -R www:www /mnt/sda1/webjson

複製代碼服務器

修改/etc/my.cnfsession

  1. datadir                = /mnt/sda1/data/mysql/


  2. tmpdir                = /mnt/sda1/data/tmp/

複製代碼

建立數據庫文件夾

  1. mkdir -p /mnt/sda1/data /mnt/sda1/data/mysql /mnt/sda1/data/tmp

複製代碼

建立默認的數據庫

  1. /usr/bin/mysql_install_db --force

複製代碼

啓動mysql

  1. /etc/init.d/mysqld start

複製代碼

輸入以下命令建立mysql的密碼

  1. /usr/bin/mysqladmin -u root password 123456

複製代碼

登錄數據庫

  1. mysql -u root -p

複製代碼

鏈接上mysql以後,建立數據庫(能夠本身定義,記住就好了,以後會用到)

  1. create database abcd

  2. \g

複製代碼

查看當前可用數據庫

  1. show databases

  2. \g

複製代碼

退出mysql
quit

修改/etc/nginx/nginx.conf

  1. user www www;

  2. worker_processes  1;

  3. pid        /var/run/nginx.pid;

  4. error_log  /var/log/nginx_error.log;

  5. events {

  6.         use epoll;

  7.         worker_connections  1024;

  8. }


  9. http {

  10.         include mime.types;

  11.         default_type application/octet-stream;

  12.         sendfile on;

  13.         tcp_nopush on;

  14.         #keepalive_timeout 0;

  15.         keepalive_timeout 65;

  16.         gzip on;

  17.         access_log   off;

  18.     

  19.         include       vhost.conf;

  20. }

複製代碼

修改/etc/nginx/fastcgi_params,解決Nginx文件類型錯誤解析漏洞

  1. if ($request_filename ~* (.*)\.php) {

  2.     set $php_url $1;

  3. }

  4. if (!-e $php_url.php) {

  5.     return 403;

  6. }


  7. fastcgi_param  QUERY_STRING       $query_string;

  8. fastcgi_param  REQUEST_METHOD     $request_method;

  9. fastcgi_param  CONTENT_TYPE       $content_type;

  10. fastcgi_param  CONTENT_LENGTH     $content_length;


  11. fastcgi_param  SCRIPT_NAME        $fastcgi_script_name;

  12. fastcgi_param  REQUEST_URI        $request_uri;

  13. fastcgi_param  DOCUMENT_URI       $document_uri;

  14. fastcgi_param  DOCUMENT_ROOT      $document_root;

  15. fastcgi_param  SERVER_PROTOCOL    $server_protocol;


  16. fastcgi_param  GATEWAY_INTERFACE  CGI/1.1;

  17. fastcgi_param  SERVER_SOFTWARE    nginx/$nginx_version;


  18. fastcgi_param  REMOTE_ADDR        $remote_addr;

  19. fastcgi_param  REMOTE_PORT        $remote_port;

  20. fastcgi_param  SERVER_ADDR        $server_addr;

  21. fastcgi_param  SERVER_PORT        $server_port;

  22. fastcgi_param  SERVER_NAME        $server_name;


  23. # PHP only, required if PHP was built with --enable-force-cgi-redirect

  24. fastcgi_param  REDIRECT_STATUS    200;

複製代碼

添加/etc/nginx/vhost.conf

  1. server {

  2.         listen       80;

  3.         server_name  localhost;

  4.         root  /mnt/sda1/web;

  5.         index  index.html index.htm index.php default.php;

  6.         error_page   500 502 503 504  /50x.html;


  7.         location = /50x.html {

  8.         root html;

  9.         }


  10.         location ~* ^.+\.php(\/.*)*$ {

  11.         fastcgi_pass   127.0.0.1:9000;

  12.         fastcgi_index  index.php;

  13.         fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;

  14.         include        fastcgi_params;

  15.     }

  16. }

複製代碼

修改/etc/php.ini

  1. short_open_tag = on

  2. #doc_root = "/mnt/www" 


  3. extension=ctype.so

  4. extension=curl.so

  5. extension=gd.so

  6. extension=mbstring.so

  7. extension=mcrypt.so

  8. extension=mysql.so

  9. extension=pdo.so

  10. extension=pdo_mysql.so

  11. extension=session.so

  12. extension=sockets.so

  13. extension=tokenizer.so

  14. extension=xml.so


  15. [Date]

  16. date.timezone = Asia/Shanghai


  17. [MySQL]

  18. mysql.default_socket = /var/run/mysqld.sock

複製代碼

啓動spawn-fcgi(如需開機自動運行,可將命令添加到/etc/rc.local)

  1. /usr/bin/spawn-fcgi -a 127.0.0.1 -p 9000 -C 2 -f /usr/bin/php-cgi

複製代碼

啓動nginx

  1. /etc/init.d/nginx enable

  2. /etc/init.d/nginx start

複製代碼

附送一個owncloud私有云的nginx配置文件。

  1. #參考http://www.right.com.cn/forum/thread-89216-1-1.html安裝組件,還需安裝php5-mod-dom、php5-mod-simplexml

  2. #因爲cpu運算性能不足,只能運行owncloud4.5系列版本,想被坑爹的能夠去用owncloud5.0系列版本

  3. #若是owncloud程序是剛上傳的,建議修改owncloud文件夾權限chown -R www:www /mnt/sda1/web/owncloud

  4. #這個是/etc/nginx/vhost.conf配置

  5. #若是沒有按照下面的設置owncloud WebDAV等,會出現owncloud佈局混亂


  6. ####################################################

  7. #               owncloud

  8. ####################################################

  9. server {

  10.     listen       80;  #修改你須要的端口,由於uhttpd已經使用80端口,這裏沒法使用80端口,或者你修改uhttpd的端口

  11.     server_name  localhost; #你的服務器域名,你能夠填寫你的動態域名

  12.     root  /mnt/sda1/web/owncloud; #網站目錄

  13.     index index.php;

  14.     client_max_body_size 20M; # 最大上傳文件大小 還須要改php.ini的upload_max_filesize


  15. # 不容許訪問的目錄

  16.     location ~ ^/(data|config|\.ht|db_structure\.xml|README) {

  17.       deny all;

  18.     }


  19. # default try order

  20.     location / {

  21.         try_files $uri $uri/ @webdav;

  22.     }



  23. # owncloud WebDAV

  24.     location @webdav {

  25.       fastcgi_split_path_info ^(.+\.php)(/.*)$;

  26.       fastcgi_pass 127.0.0.1:9000;

  27.       fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;

  28.       include fastcgi_params;

  29.     }


  30. # enable php

  31.     location ~ \.php$ {

  32.       try_files $uri = 404;

  33.       fastcgi_pass 127.0.0.1:9000;

  34.       fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;

  35.       include fastcgi_params;

  36.     }

  37. }

複製代碼

相關文章
相關標籤/搜索