jeremygo

jeremygo

我是把下一颗珍珠串在绳子上的人

Centos7 搭建網頁伺服器

最近在虛擬機裡裝了 centos7 來配置 lamp 伺服器,其中踩了好多好多…… 坑 o (╥﹏╥) o,必須做個記錄

更新:nginx 與 node 的安裝

centos7 安裝#

  • 這裡就是網上下好 iso 鏡像,然後一步步裝好,建議初學者選 GNOME 桌面版方便操作

Apache、Mysql、PHP 安裝#

  • Apache
    apache 軟體包名稱叫做 httpd
    yum install httpd
    出現提示時一路 y + 回車 就好

    啟動 Apache 並將其設置為開機啟動
    systemctl start httpd.service
    systemctl enable httpd.service
    檢查 httpd 服務狀態:
    systemctl status httpd.service
    看到綠色的active(running)表示 httpd 服務正在運行中,enabled 表示 httpd 服務已設為開機啟動

    這樣 HTTP 協議就啟動了,因為它要用到端口 80,因此防火牆要放通 80,這裡直接就關掉它
    systemctl stop firewalld.service 停止 firewall
    systemctl disable firewalld.service 禁止開機啟動

    現在可以通過ip addr查詢當前系統 ip 地址,在瀏覽器訪問就可以看到 apache 頁面
    Tips: 這裡可以將虛擬機內部 ip 配置為靜態的,然後修改主機 hosts 文件對應別名如 myserver 之後即可通過http://myserver 直接訪問

  • PHP
    yum install php
    這裡有需要的話可以進入/etc/php.ini做一些配置的修改
    測試 Apache 能不能正常調用 php,在 /var/www/html 目錄下新建一個輸出 phpinfo 的文件
    vim /var/www/html/phpinfo.php
    使用瀏覽器打開可以看到 php 信息頁則說明正常
    然後安裝常用的擴展
    yum -y install php-mysql php-gd php-imap php-ldap php-mbstring php-odbc php-pear php-xml php-xmlrpc

  • Mysql
    這裡推薦安裝 MariaDB (從 RHEL 7 開始 Red Hat 公司推薦使用它替換 Mysql)
    yum install mariadb-server mariadb
    systemctl start mariadb 啟動 mariadb
    systemctl enable mariadb 設置為開機啟動

    這裡可以啟動數據庫守護進程
    mysql_secure_installation
    用來設置 root 密碼,允許遠程 root 登錄等等

    mysql -u root -p使用 root 帳號登錄 mariadb
    show mysql切換到 mysql
    GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'password' WITH GRANT OPTION; 修改登錄權限設置為允許遠程登錄

配置 apache 虛擬目錄#

apache 默認工程目錄是在 /var/www 下的,而編輯該目錄必須是 root 用戶,因此我們有必要自定義一個目錄,讓 apache 也能識別
vim /etc/httpd/conf/httpd.conf打開 apache 配置文件
找到<dir alias_module>,在內部添加

示例:
Alias /myweb "/home/daybreak/www"
<Directory "/home/daybreak/www">
    Options Indexes FollowSymLinks
    AllowOverride None
    Require all granted
</Directory>

這裡我的自定義路徑為 /home/daybreak/www,對應別名是 myweb,在瀏覽器輸入http"//myserver/myweb就能對真實目錄 /home/daybreak/www 下文件進行訪問

注意:這裡直接訪問後很可能會出現 403forbidden 的錯誤,解決方案如下

  1. 確保配置虛擬目錄時設置了目錄訪問權限即Require all granted
  2. 到這裡可能是網站目錄的權限問題,apache 要求目錄具有執行權限,也就是 x,所以要確保訪問的目錄樹都具有這些權限,例如我的目錄時 /home/daybreak/www,則需要
chmod 755 /home
chmod 755 /home/daybreak
chmod 755 /home/daybreak/www
或者直接 chmod 755 -R /home
  1. 如果依然是 403,那就是 selinux 的問題,把目錄進行一下 selinux 權限設置
    chcon -R -t httpd_sys_content_t /home

這樣訪問成功後就可以通過自定義的目錄訪問 web 文檔

擴展:nginx 與 node 的安裝#

nginx 安裝#

  • 添加 centos7 nginx yum 資源庫:

    sudo rpm -Uvh http://nginx.org/packages/centos/7/noarch/RPMS/nginx-release-centos-7-0.el7.ngx.noarch.rpm
    
  • yum 安裝:

    sudo yum install -y nginx
    
  • 啟動並且開機啟動 nginx:

    sudo systemctl start nginx && sudo systemctl enable nginx
    
  • 測試 nginx 配置文件(查看 nginx 配置位置):

    nginx -t
    

node 安裝#

  • 使用官方編譯的二進制數據包安裝:

    • 進入官網下載鏈接,選擇想要下載的版本鏈接與版本 (*-linux-x64.tar.gz),進入用戶主目錄使用 wget 命令下載:

      wget https://nodejs.org/download/release/v8.9.4/node-v8.9.4-linux-x64.tar.gz
      
    • 下載完成後解壓到 /usr/local 目錄並安裝:

      sudo tar --strip-components 1 -xzvf node-v* -C /usr/local
      
    • 安裝完成後驗證安裝:

      node -v
      v8.9.4
      
  • 源碼安裝:

    • 使用源碼安裝與二進制數據包安裝的區別在於源碼安裝還需要編譯源碼才能安裝

    • 進入官網下載鏈接,選擇版本 (node-v*.tar.gz):

      wget https://nodejs.org/download/release/v8.9.4/node-v8.9.4.tar.gz
      
    • 下載完成後,解壓並進入解壓後的目錄

      tar xzvf node-v8.9.4.tar.gz && cd node-v8.9.4
      
    • 編譯源碼需要安裝 gccgcc-c++ (可先使用yum info package_name 檢查是否已安裝):

      sudo yum install gcc gcc-c++
      
    • 安裝完成後運行 configure 文件並編譯,編譯完成後安裝:

      ./configure && make && make install
      
載入中......
此文章數據所有權由區塊鏈加密技術和智能合約保障僅歸創作者所有。