CentOS 安裝快速 LAMP

一般來說安裝網頁伺服器 httpd (apache) ,只需要 yum install httpd -y 就搞定了,但為了能搭配 MySQL 跟 PHP 還得多安裝一些套件。

yum  -y  install  httpd  php  php-mysql  mysql  mysql-server

安裝流程步驟

    1.啟動服務
    2.設定防火牆
    3.測試 php 跟 apache 的環境
    4.進一步設定 MySQL


★啟動服務★

>>> 啟動 MySQL
1. sudo chkconfig mysqld on          //設定 MySQL 開機預設啟動,當然你也可以更進一步設定哪些 rc level 才執行他,例如「 chkconfig --levels 235 mysqld on 」
2. sudo /etc/init.d/mysqld start      // 執行 mysqld ,第一次會「正在初始化 MySQL 資料庫........」,且記得是 mysql + d 唷!

>>> 啟動 Apache
1. sudo  chkconfig httpd on
2. sudo /etc/init.d/httpd start
註:如果還沒設定網域名稱,可能會得到這提示訊息「正在啟動 httpd:httpd: apr_sockaddr_info_get() failed for hostname httpd: Could not reliably determine the server's fully qualified domain name, using 127.0.0.1 for ServerName」

sudo vi /etc/httpd/conf/httpd.conf  然後尋找字串,增加一行
ServerName your.domain.com.tw:port
就不會有這個錯誤訊息了。

★設定防火牆★
這個部分就看你這個 web 的開放對象是誰?如果只允許特定IP,那你就可以增加設定
-A Fw-rules-INPUT -s 140.112.1.0/24 -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT
-A Fw-rules-INPUT -s 140.112.1.0/24 -m state --state NEW -m tcp -p tcp --dport 443 -j ACCEPT
針對 140.112.1.* 開放 port 80 跟 443 SSL port。
1. 修改sudo vi  /etc/sysconfig/iptables 內容
2. 重新啟動 FW   sudo /etc/init.d/iptables restart
3. 觀察執行設定  sudo /sbin/iptables -L -n


★測試 php 跟 apache 的環境★
觀察 apache web server 是否正確執行「http://your_ip_address」
觀察 php 程式碼是否正確解析執行「http://your_ip_address/phpinfo.php」

★進一步設定 MySQL★
設定 MySQL 資料庫管理者 root 帳戶的密碼,執行「sudo mysql_secure_installation」,

1. Enter current password for root (enter for none):  // 直接按 Enter,因為預設沒密碼
2. Set root password? [Y/n]                     //輸入  Y 來設定密碼
3. New password:                                  // 輸入 root 新密碼
4. Re-enter new password:                      // 再一次輸入 root 新密碼
5. Remove anonymous users? [Y/n]          //預設 Yes ,直接按 Enter
6. Disallow root login remotely? [Y/n]       //預設 Yes ,直接按 Enter
7. Remove test database and access to it? [Y/n]    //預設 Yes ,直接按 Enter
8. Reload privilege tables now? [Y/n]       //預設 Yes ,直接按 Enter

接著利用剛剛設定的 root 密碼登入 MySQL,執行「sudo mysql -u root -p」,密碼正確就會進入「mysql>」這樣的提示符號。
※ 執行選擇要用那個資料庫
mysql> use mysql

※ 執行「select host,user from user ;」要有分號結尾才會執行。
mysql> select host,user from user ;
+-----------+------+
| host      | user |
+-----------+------+
| 127.0.0.1 | root |
| localhost | root |
+-----------+------+
2 rows in set (0.00 sec)

※ 新增一個使用者
insert into user (host,user,password) values ('%','your_account',password('your_password'));

※授與該使用者管理者權限,這樣才能有辦法遠端處理 (因為 root 的遠端登入被停掉了)
GRANT ALL ON *.* TO 'your_account'@140.112.1.1 IDENTIFIED BY 'your_password' WITH GRANT OPTION;
不然剛剛那個帳號,只會是一般資料庫使用者的帳號,而且沒任何權限。
※讓剛剛的設定生效
FLUSH PRIVILEGES;

-------
若只是要單純的授與某位使用者為某個資料庫的管理者(非整個 MySQL 管理者),你可以使用
sudo mysql -u root -p
mysql> use mysql;
mysql> create database your_db_name;
mysql> insert into user (host,user,password) values ('%','your_account',password('your_password'));
mysql> grant usage on *.* to your_account@localhost identified by 'your_password';
mysql> grant all privileges on your_db_name.* to your_account@localhost ;
mysql> FLUSH PRIVILEGES;
----
接著遠端測試連接 MySQL
連不到請記得開 Firewall Port: 3306

正確連上後就可以看到兩個基本的資料表 mysql 跟 information_schema
-------------------------------------------------------------------
以上的步驟就完成了 apache + php + mysql 的安裝了,接下來就是思考 PHP 網頁環境是要執行那個套件或者需要安裝哪些額外的 php 函示庫呢?

安裝基本需要的套件
yum -y install  php-mbstring php-mcrypt php-gd php-xml
底下PHP 相關套件是 for x86_64 5.3.3 14.el6_3 所舉例說明的,不代表全部。

當然 MySQL 的部分你也可能要做其他運用,例如搭配 rsyslog 而需要再安裝「rsyslog-mysql」套件MySQL support for rsyslog.  http://www.rsyslog.com/ 。

 Apache 也是有額外安裝的模組,例如要用 https 的 SSL 時候,就必須安裝 mod_ssl。

yum  -y  install  mod_ssl  mod_perl  mod_auth_mysql

留言

這個網誌中的熱門文章

c語言-關於#define用法

CMD常用網管指令

PHP 與 JavaScript 之間傳值利用 json