# yum install httpd mysql mysql-server php php-mysql
啟用「使用者家目錄網頁支援」,修改 Apache 設定檔
# vi /etc/httpd/conf/httpd.conf
找到以下這段,並且修改
<ifmodule mod_userdir.c="mod_userdir.c"> #UserDir disable UserDir www </ifmodule>
UserDir disable 設定前面加上註解符號「#」,然後重新啟動 Apache 伺服器
# /etc/init.d/httpd restart
隨便先登入一個使用者,假設使用者名稱為 user
建立 public_html 目錄,並且設定權限
# mkdir ~/public_html
# chmod 755 /home/user/public_html
# chmod 711 /home/user
正常來說,這樣子就可以使用了,但是在支援 SELinux 的 Linux 系統中,必須還要做一些安全機制的設定跟處理,否則開啟瀏覽器會出現 You don't have permission 的錯誤訊息,可以檢查 /var/log/messages 得知必須先做一些處理才能正常使用。
# setsebool -P httpd_enable_homedirs=1
# restorecon -Rv /home/
第一個指令的用途再開啟個人網頁支援,第二個指令則是處理安全類型。
在執行 SELinux 設定的時候有時候電腦會跑很久,並不是當機,請耐心等待。
另外由於網頁是對網路外面的使用者服務,因此我們還需要設定一下防火牆及一些 SELinux 的機制
開啟網頁伺服器網路對外預設監聽的 80 Port,可以透過 system-config-network-tui 套件進入圖形化設定介面,或者直接修改防火牆設定檔(官方不建議,請自己小心修改,因為我比較喜歡了解實際設定檔案在哪裡)
vi /etc/sysconfig/iptables
-A INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT
新增上面這行,然後整個設定檔後看起來如下面這樣
# Firewall configuration written by system-config-firewall # Manual customization of this file is not recommended. *filter :INPUT ACCEPT [0:0] :FORWARD ACCEPT [0:0] :OUTPUT ACCEPT [0:0] -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT -A INPUT -p icmp -j ACCEPT -A INPUT -i lo -j ACCEPT -A INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT -A INPUT -j REJECT --reject-with icmp-host-prohibited -A FORWARD -j REJECT --reject-with icmp-host-prohibited COMMIT
重新啟動防火牆服務
# /etc/init.d/iptables restart
最後,SELinux 也要設定放行網路連線的權限
# setsebool -P httpd_can_network_connect=1
重新啟動 Apache 即可
# /etc/init.d/httpd restart
最後其實就可以使用家目錄對應的網頁伺服器了,我們來測試一下 Apache + PHP 的功能是否正常
例如使用者 user,/home/user/public_html 底下放置一個檔案 index.php 內容如下
<?php phpinfo(); ?>存檔後,在瀏覽器網址輸入 http://您的網址/~user/index.php,就可以看到一個 phpinfo 的測試頁面了(安全考量,建議測試成功後砍掉此檔案)
預設的情況下,網頁索引的功能是打開的,也就是只要別人輸入網址不指定檔名,網頁會把整個底下的目錄跟檔案顯示出來,這樣是很危險的,建議還是把它關掉比較安全。
# vi /etc/httpd/conf/httpd.conf
<Directory "/var/www/html"> # Possible values for the Options directive are "None", "All", # or any combination of: # Indexes Includes FollowSymLinks SymLinksifOwnerMatch ExecCGI MultiViews # # Note that "MultiViews" must be named *explicitly* --- "Options All" # doesn't give it to you. # # The Options directive is both complicated and important. Please see # http://httpd.apache.org/docs/2.2/mod/core.html#options # for more information. # Options Indexes FollowSymLinks # # AllowOverride controls what directives may be placed in .htaccess files. # It can be "All", "None", or any combination of the keywords: # Options FileInfo AuthConfig Limit # AllowOverride None # # Controls who can get stuff from this server. # Order allow,deny Allow from all </Directory>
注意此行:Options Indexes FollowSymLinks,把 Indexes 拿掉,可以用搜索找出其他區塊是否也有相同的設定,一律把它刪除,然後重新啟動 Apache 試試看吧。
這樣子,Apache + PHP 的基本設定就完成了,讓我們來測試一下 MySQL 是否功能正常吧!
首先預設的情況下,MySQL 是沒有啟動的,我們先將其啟動起來
# /etc/init.d/mysqld start
預設root帳號是沒有密碼的,很危險,所以我們要趕快使用 mysqladmin 工具設定 root 密碼!
# mysqladmin -u root password '密碼'
然後就是將 MySQL 設定成開機自動啟動服務的功能
# chkconfig mysqld on
大功告成,可以登入進去測試看看,使用 mysql -u root -p 以 root 身分登入,並且輸入密碼
[root@localhost conf]# mysql -u root -p
Enter password:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 1496
Server version: 5.1.61 Source distribution
Copyright (c) 2000, 2011, Oracle and/or its affiliates. All rights reserved.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| cms |
| mysql |
| test |
+--------------------+
4 rows in set (0.00 sec)
mysql> quit
Bye
[root@localhost conf]#
show database 為 MySQL 中的指令,看看MySQL內有那些資料庫,quit 指令可以離開 MySQL 的介面(MySQL 介面中指令必須以分號「;」作為結尾才可以執行)。
當然最好幫 MySQL 安裝一下圖形化的操作介面(例如 phpMyAdmin 的網頁介面,或者更簡單的直接安裝圖形介面的軟體像是 WorkBench 等等),文字介面畢竟不是那麼容易使用。
請問,在centos7中,我安裝了pppoe-setup後,暫時關閉了NetworkManager功能,
回覆刪除啟動ppp0以及網卡,原本以為可以上網,但是出現SELinux否定ppp存取要求,我索性把SELinux也設定不啟動,可是我還是無法上網,可幫忙指點嗎?
1.我的網路是pppoe撥接,ISP有提供一組固I+7組浮I
2.ISP業者為SEEDNET, 所以設定pppoe時,帳號輸入為 : Txxxxxx#,因為我當伺服器使用,要取得固I
3.網卡一張,只有一部主機
感恩指教
您好,抱歉人在國外一段時間網路不方便,部落格有點年久失修,希望妳已經解決您的問題^^
刪除SELinux啟用會遇到的問題確實蠻多的,以您的狀況來說比較複雜以這樣的資訊很難判斷,但是我自己曾經有遇到安裝了pppoe-server 導致連線上有問題,可以移除 pppoe-server 試試看。
我用中華電信1固+7浮,是無法在linux用pppoe的,似乎是假固定,它只是每次撥號都給同一個IP,我用adsl上的Virtual Server+pppoe功能把固定IP轉到linux主機
刪除