之前個人blog,文章的制作。將所有的博客將轉移至簡書。
開機啟動 #vim /etc/rc.d/rc.local
chkconfig mysqld on chkconfig httpd on
一.安裝mysql,直接用yum安裝即可,mysql在centos7.0版本中被mariadb替代了。
yum install mysql-server mysql
安裝好了,選擇修改mysql默認的root用戶的密碼,啟動mysql服務。
service mysqld start
二.安裝apache,直接yum安裝,與mysql安裝方式相近。
安裝完畢,開啟apache服務。
systemctl start httpd.service
測試以下apache是否安裝成功,打開瀏覽器,輸入http://localhost,是否顯示apache的主頁。
三.安裝php,用yum安裝,方式類似。
四.添加php對mysql的支持,yum安裝之。
yum install php-mysql
注:若要開啟php其他的功能,可自己另外添加相關模塊。
五.apache添加虛擬目錄
由于apache默認工程目錄在/var/www
下,而該目錄下的所有文件屬主都是root用戶,這樣我們每次編寫php文件都要獲取到root權限進行編輯,很是麻煩,因此可不可以我們自定義一個目錄,讓apache也識別出這個目錄。
apache的服務配置文件在/etc/httpd/conf/httpd.conf
中,編輯httpd.conf
文件,用Alisa
來對你的自定義目錄進行重命名,便于我們訪問該目錄下的文件。
示例:
Alias /bbs "/home/xxx/WorkSpace/www"
<Directory "/home/xxx/WorkSpace/www"> Options Indexes FollowSymLinks AllowOverride None Require all granted </Directory>
我這里選擇我的自定義路徑是/home/xxx/WorkSpace/www
,在該目錄下新建一個index.html
文件,目錄對應的別名是/bbs,訪問是直接輸入:http://localhost/bbs即可對真實目錄/home/xxx/WorkSpace/www
下的文件進行訪問。
之后你有以下工作要做:
1.檢查自定義目錄/home/xxx/WorkSpace/www
的各級權限,對照著/var/www/html
更改,分別修改目錄權限和文件權限。
2.若還是出現這個錯誤,那么八成就是SELinux搞的鬼了,首先,用 semanage fcontext -l | grep '/var/www'
獲知默認 /var/www
目錄的 SELinux 上下文,會得到一堆類似下面列舉出來的信息:
/var/www(/.*)? all files system_u:object_r:httpd_sys_content_t:so
從中可以看出apache只能訪問包含httpdsyscontent_t標簽的文件。若我們想訪問自定義的網站目錄,那么就需要給這個目錄下的文件增加這個標簽,分為兩步實現:
首先為自定義目錄下的文件添加默認標簽類型,semanage fcontext -a -t``httpd_sys_content_t '/home/xxx/WorkSpace/www(/.*)?'
,然后用新的標簽類型標注已有文件:restorecon -R -v /home/xxx/WorkSpace/www
,之后apache就可以使用該目錄了。
2.到這一步出現AH00132錯誤代碼,那么設置SELinux對目錄下的文件可讀,即可訪問。
setsebool -P httpd_read_user_content 1
到此,在輸入http://localhost/bbs
,就可訪問到index.html
文件的內容了。
準備篇:
一、配置防火墻,開啟80端口、3306端口
CentOS 7.0默認使用的是firewall作為防火墻,這里改為iptables防火墻。
1、關閉firewall:
systemctl stop firewalld.service #停止firewall systemctl disable firewalld.service #禁止firewall開機啟動
2、安裝iptables防火墻
yum install iptables-services #安裝 vi /etc/sysconfig/iptables #編輯防火墻配置文件
# 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 22 -j ACCEPT -A INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT -A INPUT -m state --state NEW -m tcp -p tcp --dport 3306 -j ACCEPT -A INPUT -j REJECT --reject-with icmp-host-prohibited -A FORWARD -j REJECT --reject-with icmp-host-prohibited COMMIT
:wq! #保存退出
systemctl restart iptables.service #最后重啟防火墻使配置生效
systemctl enable iptables.service #設置防火墻開機啟動
二、關閉SELINUX
vi /etc/selinux/config
#SELINUX=enforcing #注釋掉
#SELINUXTYPE=targeted #注釋掉
SELINUX=disabled #增加
:wq! #保存退出
setenforce 0 #使配置立即生效
安裝篇:
一、安裝Apache
yum install httpd #根據提示,輸入Y安裝即可成功安裝
systemctl start httpd.service #啟動apache
systemctl stop httpd.service #停止apache
systemctl restart httpd.service #重啟apache
systemctl enable httpd.service #設置apache開機啟動
在客戶端瀏覽器中打開服務器IP地址,會出現下面的界面,說明apache安裝成功
二、安裝MariaDB
CentOS 7.0中,已經使用MariaDB替代了MySQL數據庫
1、安裝MariaDB
yum install mariadb mariadb-server #詢問是否要安裝,輸入Y即可自動安裝,直到安裝完成
systemctl start mariadb.service #啟動MariaDB
systemctl stop mariadb.service #停止MariaDB
systemctl restart mariadb.service #重啟MariaDB
systemctl enable mariadb.service #設置開機啟動
cp /usr/share/mysql/my-huge.cnf /etc/my.cnf #拷貝配置文件(注意:如果/etc目錄下面默認有一個my.cnf,直接覆蓋即可)
2、為root賬戶設置密碼
mysql_secure_installation
回車,根據提示輸入Y
輸入2次密碼,回車
根據提示一路輸入Y
最后出現:Thanks for using MySQL!
MySql密碼設置完成,重新啟動 MySQL:
systemctl restart mariadb.service #重啟MariaDB
三、安裝PHP
1、安裝PHP
yum install php #根據提示輸入Y直到安裝完成
2、安裝PHP組件,使PHP支持 MariaDB
yum install php-mysql php-gd libjpeg* php-ldap php-odbc php-pear php-xml php-xmlrpc php-mbstring php-bcmath php-mhash
#這里選擇以上安裝包進行安裝,根據提示輸入Y回車
systemctl restart mariadb.service #重啟MariaDB
systemctl restart httpd.service #重啟apache
配置篇
一、Apache配置
vi /etc/httpd/conf/httpd.conf #編輯文件
ServerSignature On #添加,在錯誤頁中顯示Apache的版本,Off為不顯示
Options Indexes FollowSymLinks #修改為:Options Includes ExecCGI
FollowSymLinks(允許服務器執行CGI及SSI,禁止列出目錄)#AddHandler cgi-script .cgi #修改為:AddHandler cgi-script .cgi .pl (允許擴展名為.pl的CGI腳本運行)
AllowOverride None #修改為:AllowOverride All (允許.htaccess) AddDefaultCharset UTF-8 #修改為:AddDefaultCharset GB2312 (添加GB2312為默認編碼)
#Options Indexes FollowSymLinks #修改為 Options FollowSymLinks(不在瀏覽器上顯示樹狀目錄結構)
DirectoryIndex index.html #修改為:DirectoryIndex index.html index.htm ``Default.html Default.htm index.php(設置默認首頁文件,增加index.php)
MaxKeepAliveRequests 500 #添加MaxKeepAliveRequests 500 (增加同時連接數) :wq! #保存退出
systemctl restart httpd.service #重啟apache
rm -f /etc/httpd/conf.d/welcome.conf /var/www/error/noindex.html #刪除默認測試頁
二、php配置
vi /etc/php.ini #編輯 date.timezone = PRC #把前面的分號去掉,改為date.timezone = PRC disable_functions = passthru,exec,system,chroot,scandir,chgrp,chown,shell_exec,proc_open,proc_get_status,ini_alter,ini_alter,ini_restore,dl,openlog,syslog,readlink,symlink,popepassthru,stream_socket_server,escapeshellcmd,dll,popen,disk_free_space,checkdnsrr,checkdnsrr,getservbyname,getservbyport,disk_total_space,posix_ctermid,posix_get_last_error,posix_getcwd, posix_getegid,posix_geteuid,posix_getgid, posix_getgrgid,posix_getgrnam,posix_getgroups,posix_getlogin,posix_getpgid,posix_getpgrp,posix_getpid, posix_getppid,posix_getpwnam,posix_getpwuid, posix_getrlimit, posix_getsid,posix_getuid,posix_isatty, posix_kill,posix_mkfifo,posix_setegid,posix_seteuid,posix_setgid, posix_setpgid,posix_setsid,posix_setuid,posix_strerror,posix_times,posix_ttyname,posix_uname
列出PHP可以禁用的函數,如果某些程序需要用到這個函數,可以刪除,取消禁用。
expose_php = Off #禁止顯示php版本的信息
short_open_tag = ON #支持php短標簽
open_basedir = .:/tmp/ #設置表示允許訪問當前目錄(即PHP腳本文件所在之目錄)和/tmp/目錄,可以防止php木馬跨站,如果改了之后安裝程序有問題(例如:織夢內容管理系統),可以注銷此行,或者直接寫上程序的目錄/data/www.osyunwei.com/:/tmp/
:wq! #保存退出
systemctl restart mariadb.service #重啟MariaDB
systemctl restart httpd.service #重啟apache
測試篇
cd /var/www/html vi index.php #輸入下面內容 <?php phpinfo(); ?>
:wq! #保存退出
在客戶端瀏覽器輸入服務器IP地址,可以看到如下圖所示相關的配置信息!
注意:apache默認的程序目錄是/var/www/html
權限設置:chown apache.apache -R /var/www/html
至此,CentOS 7.0安裝配置LAMP服務器(Apache+PHP+MariaDB)教程完成!