最近在虛擬機裡裝了 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 的錯誤,解決方案如下
- 確保配置虛擬目錄時設置了目錄訪問權限即
Require all granted
- 到這裡可能是網站目錄的權限問題,apache 要求目錄具有執行權限,也就是 x,所以要確保訪問的目錄樹都具有這些權限,例如我的目錄時 /home/daybreak/www,則需要
chmod 755 /home
chmod 755 /home/daybreak
chmod 755 /home/daybreak/www
或者直接 chmod 755 -R /home
- 如果依然是 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
-
編譯源碼需要安裝
gcc
和gcc-c++
(可先使用yum info package_name
檢查是否已安裝):sudo yum install gcc gcc-c++
-
安裝完成後運行
configure
文件並編譯,編譯完成後安裝:./configure && make && make install
-
-