LNAMP套件修改網站根目錄的方法

修改LNAMP套件的根目錄以執行Laravel。

最近因公司需求,架設了一個網站,
採用的方式是透過OneinStack的LNAMP套件架設伺服器,
然後在上面運行Laravel框架,
由於Laravel預設網站的根目錄在public資料夾底下,
比較安全的方式是直接修改web server的根目錄,
(其實也可以透過修改.htaccess的方式讓整個Laravel資料夾放到公開目錄,
但這個網站架構單純,不採用這個作法。)
這邊就簡單紀錄一下如何修改LNAMP套件的根目錄。

因為同時使用了Nginx與Apache當作web server,
主要原理是讓Nginx監聽80 port,
靜態的檔案(html,jpg,css,js…,etc)直接由Nginx返回,
動態的檔案(php,.htacess)則Proxy_pass給Apache處理,
所以要修改網站的根目錄,必須兩者都一起修改才可以運作,
以下路徑都以”/data/wwwroot/public”為例。

首先,先修改Apache的httpd.conf:
(預設路徑為/usr/local/apache/conf/httpd.conf)

DocumentRoot "/data/wwwroot/default"
<Directory "/data/wwwroot/default">

改為:

DocumentRoot "/data/wwwroot/public"
<Directory "/data/wwwroot/public">

然後進入vhost的設定檔
(預設路徑為/usr/local/apache/conf/vhost/0.conf)

<VirtualHost *:88>
  ServerAdmin [email protected]
  DocumentRoot "/data/wwwroot/default"
  ...
<Directory "/data/wwwroot/default">
  SetOutputFilter DEFLATE
...

改為

<VirtualHost *:88>
  ServerAdmin [email protected]
  DocumentRoot "/data/wwwroot/public"
  ...
<Directory "/data/wwwroot/public">
  SetOutputFilter DEFLATE
...

最後修改Nginx的conf檔
(預設路徑為/usr/local/nginx/conf/nginx.conf)

  server {
    listen 80;
    server_name _;
    access_log /data/wwwlogs/access_nginx.log combined;
    root /data/wwwroot/default;
    index index.html index.htm index.php;
    #error_page 404 /404.html;
    #error_page 502 /502.html;
    location / {
      try_files $uri @apache;
    }
    location @apache{
      proxy_pass http://127.0.0.1:88;
      include proxy.conf;
    }

改為

  server {
    listen 80;
    server_name _;
    access_log /data/wwwlogs/access_nginx.log combined;
    root /data/wwwroot/public;
    index index.html index.htm index.php;
    #error_page 404 /404.html;
    #error_page 502 /502.html;
    location / {
      try_files $uri @apache;
    }
    location @apache{
      proxy_pass http://127.0.0.1:88;
      include proxy.conf;
    }

最後重啟Nginx與Apache就完成惹。

service httpd restart
service nginx restart

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *