Linux搭建lamp(Apache+PHP+Mysql環境)centos7.4版詳細教程
簡介
根據自己的產品對CPU、頻寬、記憶體等硬體配置的要求,選擇對應的配置,除錯期間我們一般選擇1核1G 1M,預設選擇40G雲盤。這樣一個月也就幾十塊的服務端成本。產品上線後,我們再根據使用者匯入規模,初期選擇了4核8G 10M 的配置。
1、確認centos版本
[[email protected] ~]# cat /etc/redhat-release
CentOS Linux release 7.4 (Core)
2、檢查是否安裝過apache
rpm -qa | grep httpd
或者:
apachectl -v
或者:
httpd -v
3、檢查是否安裝過Mysql
service mysqld start
5、清理Mysql痕跡如果未被識別則沒有安裝
如果系統安裝過,或者安裝失敗,清理一下系統
yum remove mysql
rm -f /etc/my.cnf
6、解除安裝Apache包
rpm -qa|grep httpd
注意:如果是新的系統或者你從來沒有嘗試安裝過,則以上步驟省略。
1.安裝Apache
安裝Apache
安裝
[[email protected] ~]# yum -y install httpd
開啟apache服務
[[email protected] ~]# systemctl start httpd.service
設定apache開機自啟動
[[email protected] ~]# systemctl enable httpd 或者 chkconfig httpd on
Note: Forwarding request to 'systemctl enable httpd.service'.
至此,我們appache也安裝完畢,開啟瀏覽器輸入你的伺服器ip地址就可以看到如下頁面
更改apache預設網站目錄
當我們在Centos7中配置好Apache時,發現apache預設解析目錄是在 /var/www/html,也就是說當訪問伺服器 IP 或者本地 localhost 時,預設定位到這個目錄裡的 index.html 或 index.php 檔案。
如果不想用這個預設目錄,就要我們動手改了:
-
一、先建立我們想要的目錄,我選擇在
/home
下建一個www
目錄[[email protected] ~]# cd /home/ --進入home資料夾下 [[email protected] ~]# mkdir www --建立www資料夾
-
二、修改
apache
配置檔案,使定位到/home/www/
[[email protected] ~]# vim /etc/httpd/conf/httpd.conf -- 用編輯器開啟配置檔案(沒安裝vim的同學可以用vi)
然後:找到 DocumentRoot “/var/www/html”
這表示 #apache
的根目錄,將該目錄改成 /home/www
即可。
再找到 <Directory "/var/www/html">
這個區域,#定義apache /var/www/html
這個區域,把 /var/www/html
改成/home/www
,這樣我們就把apahce的預設路徑改掉了。
[[email protected] ~]# systemctl restart httpd.service --重啟apache伺服器。
完成以上步驟後,訪問主機IP,訪問成功。
- 可能出現的問題
如果顯示,you don’t have permission…..什麼的,則是許可權問題,因為有些版本的centos在建立資料夾的時候預設許可權是
750
,apache
作為一個外來的使用者,是沒有許可權訪問的,我們需要為其賦予許可權:
[[email protected] ~]# chmod -R 755 /home/www
特別的,如果你的專案用的是thinkphp框架,由於apache還要往Runtime資料夾裡面新增快取和日誌等內容,單單是 755
許可權是不夠的。因此要對Runtime這個目錄賦予全部許可權:至此,你已經成功的將apache預設目錄移至/home/www/
下了。
[[email protected] ~]# chmod -R 777 /home/www/Runtime
禁用Apache預設頁面將你的專案移到該目錄下即可。
這一步,也可以不操作,主要是為了apache那個頁面
使用find / -name httpd.conf命令查詢到具體的路徑為/etc/httpd/conf/httpd.conf
進入到apache的目錄
[[email protected] ~]# vim /etc/httpd/conf.d/welcome.conf
更改為(註釋7-10行)將原檔案內容
重啟Apache :
[[email protected] ~]# service httpd restart
修改apache預設頁面方法
這一步,也可以不操作,主要是為了apache那個頁面
通過檢視welcome.conf這個配置檔案,可以發現apache預設頁面檔案為
/usr/share/httpd/noindex/index.html
修改這個檔案裡面的html,然後重啟apache就可以了
[[email protected] ~]# vim /usr/share/httpd/noindex/index.html
[[email protected] ~]# service httpd restart
安裝PHP2.安裝PHP
1、預設centos7 自帶的是php5.4版本,升級php5.7。不升級只有yum 安裝
2、我才用的是編譯安裝
下載php7
[[email protected] local]# wget -O php7.tar.gz http://cn2.php.net/get/php-7.1.1.tar.gz/from/this/mirror
解壓php7
[[email protected] local]# tar -xvf php7.tar.gz
重新命名php-7.1.1為php
[[email protected] local]# mv php-7.1.1 php
進入php目錄
[[email protected] local]# cd php
安裝依賴包
[[email protected] php]# yum install gcc libxml2 libxml2-devel openssl openssl-devel bzip2 bzip2-devel libcurl libcurl-devel libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel gmp gmp-devel libmcrypt libmcrypt-devel readline readline-devel libxslt libxslt-devel
編譯安裝
[[email protected] php]# ./configure --prefix=/usr/local/php \
--with-config-file-path=/usr/local/php/etc \
--enable-inline-optimization --disable-debug \
--disable-rpath --enable-shared --enable-opcache \
--enable-fpm --with-fpm-user=www \
--with-fpm-group=www \
--with-mysql=mysqlnd \
--with-mysqli=mysqlnd \
--with-pdo-mysql=mysqlnd \
--with-gettext \
--enable-mbstring \
--with-iconv \
--with-mcrypt \
--with-mhash \
--with-openssl \
--enable-bcmath \
--enable-soap \
--with-libxml-dir \
--enable-pcntl \
--enable-shmop \
--enable-sysvmsg \
--enable-sysvsem \
--enable-sysvshm \
--enable-sockets \
--with-curl --with-zlib \
--enable-zip \
--with-bz2 \
--with-readline
正式安裝
[[email protected] php]# make && make install
配置服務-配置檔案
php的解壓目錄複製一下php的配置檔案
[[email protected] php]# cp php.ini-development /usr/local/php/php.ini
配置PHP-fpm
配置PHP-fpm
[[email protected] php]# cp /usr/local/php/etc/php-fpm.conf.default /usr/local/php/etc/php-fpm.conf
[[email protected] php]# cp /usr/local/php/etc/php-fpm.d/www.conf.default /usr/local/php/etc/php-fpm.d/www.conf
[[email protected] php]# cp sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm
[[email protected] php]# chmod +x /etc/init.d/php-fpm
[[email protected] php]# chkconfig --add php-fpm
#設定開機自啟
[[email protected] php]# chkconfig php-fpm on
[[email protected] php]# service php-fpm start
##如果出現錯誤:ERROR: [pool www] cannot get uid for user 'www-data'
##則新建www-data 使用者組:
[[email protected] php]# groupadd www-data
[[email protected] php]# useradd -g www-data www-data
重啟php-fpm
[[email protected] php]# /etc/init.d/php-fpm restart
##如果出現錯誤:ERROR: unable to bind listening socket for address '127.0.0.1:9000': Address already in use
檢視佔用9000埠的程式:
[[email protected] php]# netstat -lntup | grep 9000
停止原先的php-fpm:
[[email protected] php]# killall php-fpm
[[email protected] php]# service php-fpm start
配置環境變數
配置環境變數
[[email protected] ~]# vim /etc/profile
在末尾追加 ## 這句話不要加
PATH=$PATH:/usr/local/php
export PATH
[[email protected] ~]# source /etc/profile
安裝完成後,重啟Apache伺服器
安裝完成後,重啟Apache伺服器
[[email protected] ~]# systemctl restart httpd.service
安裝PHP 可能出現的錯誤
centos7 apache無法解析php
使用yum安裝完apache、php7、mariadb之後,發現apache可以解析html檔案,但是不能解析php檔案。
配置apache來使用php-fpm,並寫好配置檔案,內容如下<FilesMatch \.php$> SetHandler "proxy:fcgi://127.0.0.1:9000" </FilesMatch>
儲存到/etc/httpd/conf.modules.d/10-php-fpm.conf,然後啟動php-fpm,並重啟apache,php檔案解析成功
3.安裝MariaDB
安裝MariaDB (MySQL的一個開源分支)
1、檢查系統是否已經安裝了 mysql mariadb
[[email protected] ~]# rpm -qa | grep -i mysql [[email protected] ~]# rpm -qa | grep -i mariadb
如果有的話,請先解除安裝
安裝mariadb 資料庫
[[email protected] ~]# yum install mariadb mariadb-server
這個指令碼會經過一些列的互動問答來進行MariaDB的安全設定。
首先提示輸入當前的root密碼:
Enter current password for root (enter for none):
初始root密碼為空,我們直接敲回車進行下一步。
Set root password? [Y/n]
設定root密碼,預設選項為Yes,我們直接回車,提示輸入密碼,在這裡設定您的MariaDB的root賬戶密碼。
Remove anonymous users? [Y/n]
是否移除匿名使用者,預設選項為Yes,建議按預設設定,回車繼續。
Disallow root login remotely? [Y/n]
是否禁止root使用者遠端登入?如果您只在本機內訪問MariaDB,建議按預設設定,回車繼續。 如果您還有其他雲主機需要使用root賬號訪問該資料庫,則需要選擇n。
Remove test database and access to it? [Y/n]
是否刪除測試用的資料庫和許可權? 建議按照預設設定,回車繼續。
Reload privilege tables now? [Y/n]
MariaDB安裝成功後,需要配置MySQL的root密碼,此外,備註一下啟動關閉MariaDB的常用命令
systemctl start mariadb //啟動MariaDB
systemctl stop mariadb //停止MariaDB
systemctl restart mariadb //重啟MariaDB
systemctl enable mariadb //設定開機啟動
設定root賬戶密碼
[[email protected] ~]# mysql_secure_installation
Enter current password for root (enter for none):
Set root password? [Y/n]
點選回車然後提示是否設定root賬號密碼,輸入y
New password:
Re-enter new password:
Password updated successfully!
最後如果出現Thanks for using MariaDB! 說明配置成功,輸入使用者名稱root和密碼進行登入測試
[[email protected] ~]# mysql -uroot -p
Navicat 遠端連線linux mariadb 可能出現的問題
解決Navicat 報錯:1130-host … is not allowed to connect to this MySql server,MySQL
解決方法:
- 改表法。
可能是你的帳號不允許從遠端登陸,只能在localhost。這個時候只要在localhost的那臺電腦,登入mysql後,更改 “mysql” 資料庫裡的 “user” 表裡的 “host” 項,從”localhost”改稱”%”
[[email protected] ~]# mysql -u root -p
//輸入密碼
Enter password:
mysql>use mysql;
mysql>update user set host = '%' where user = 'root' and host='localhost';
mysql>select host, user from user;
親測可用。需要重啟MySQL服務。 或 再執行 執行一個語句 mysql>FLUSH RIVILEGES 使修改生效.就可以了
- 授權法。
例如,你想myuser使用mypassword從任何主機連線到mysql伺服器的話。
GRANT ALL PRIVILEGES ON . TO ‘myuser’@’%’ IDENTIFIED BY ‘mypassword’ WITH GRANT OPTION;
FLUSH PRIVILEGES;
如果你想允許使用者myuser從ip為192.168.1.6的主機連線到mysql伺服器,並使用mypassword作為密碼
GRANT ALL PRIVILEGES ON . TO ‘myuser’@’192.168.1.3’ IDENTIFIED BY ‘mypassword’ WITH GRANT OPTION;
FLUSH PRIVILEGES;
如果你想允許使用者myuser從ip為192.168.1.6的主機連線到mysql伺服器的dk資料庫,並使用mypassword作為密碼
GRANT ALL PRIVILEGES ON dk.* TO ‘myuser’@’192.168.1.3’ IDENTIFIED BY ‘mypassword’ WITH GRANT OPTION;
FLUSH PRIVILEGES;
我用的第一個方法,剛開始發現不行,在網上查了一下,少執行一個語句 mysql>FLUSH RIVILEGES 使修改生效.就可以了
另外一種方法,不過我沒有親自試過的,在csdn.net上找的,可以看一下.
在安裝mysql的機器上執行:
1、d:/mysql/bin/>mysql -h localhost -u root //這樣應該可以進入MySQL伺服器
2、mysql>GRANT ALL PRIVILEGES ON . TO ‘root’@’%’ WITH GRANT OPTION //賦予任何主機訪問資料的許可權
3、mysql>FLUSH PRIVILEGES //修改生效
4、mysql>EXIT //退出MySQL伺服器
這樣就可以在其它任何的主機上以root身份登入啦!
4.安裝PhpMyadmin
1、首先要去 phpMyAdmin 官網
下載。這裡我給大家下連結 http://www.phpmyadmin.net/downloads/ 在頁面裡你可以看到不同版本的 phpMyAdmin 你可以根據自己的需要進行下載。
2、放到到網站的目錄下面
[[email protected] ~]# cd /var/www/html
3、解壓phpMyAdmin-4.8.2-all-languages.tar.gz / 命名為phpMyAdmin
[[email protected] html]# tar -xvf phpMyAdmin-4.8.2-all-languages.tar.gz
[[email protected] html]# mv phpMyAdmin-4.8.2-all-languages phpMyAdmin
4、直接訪問網址
直接訪問網址 http://伺服器ip地址/phpmyadmin/index.php
然後進行登陸,可是登陸不了。結果報錯了:phpmyadmin mysqli_real_connect(): (HY000/2002): No such file or directory
再次重新整理頁面就不會出現mysqli_real_connect(): (HY000/2002): No such file or directory的錯誤提示了
。
phpmyadmin 上傳到網站目錄後提示解決phpmyadmin mysqli_real_connect(): (HY000/2002): No such file or directory的錯誤,解決方法把phpmyadmin目錄中的配置檔案config.sample.inc.php改成config.inc.php,並把
$cfg['Servers'][$i]['host'] = 'localhost';
#改成
$cfg['Servers'][$i]['host'] = '127.0.0.1';
[[email protected] phpmyadmin]# cp config.sample.inc.php config.inc.php