一、前言
LAMP即:Linux、Apache、Mysql、Php,也就是在linux系統下運行php網站代碼,使用的數據庫是mysql、web服務軟件是apache。之所以存在LAMP這種說法,倒不是一定要如此搭配方行,只是mysql、apache比較常用而且免費,所以linux下的php網站就使用LAMP這樣的搭配。
二、環境准備
1、centos7,我使用的是centos7(64位)最小系統,ISO包上官網下載即可,找不到官網的到下面鏈接中隨便下一個就可以了
http://isoredirect.centos.org/centos/7/isos/x86_64/CentOS-7-x86_64-Minimal-1810.iso
2、apache,稍后使用yum安裝最新版即可
3、mysql,當前最新版是mysql8.0了,需要到官網下載yum源而后通過yum源安裝即可(文末附下載鏈接),也可以直接用wget獲取(后續有)
4、php,稍后使用yum安裝最新版即可
三、centos准備
首先我們要讓centos准備好環境,很多童鞋看網上隨便找來的教程整了半天就是不能正常運行,常見原因就是漏了這一步。
1、關閉防火牆
[root@localhost ~]# systemctl stop firewalld.service
使防火牆開機不啟動(避免系統重啟后防火牆又生效)
[root@localhost ~]# systemctl disable firewalld.service
2、關閉selinux
[root@localhost ~]# setenforce 0
setenforce: SELinux is disabled
修改selinux配置文件使其開機不啟動
[root@localhost ~]# vi /etc/sysconfig/selinux
//將“SELINUX=enforcing”修改為“SELINUX=disabled”
關閉防火牆和selinux后centos就准備好了,因為是測試環境嘛,所以這兩個都關閉了,如果在生產環境可別直接關了,還是要設置下的。
四、安裝apache
apache安裝非常簡單,使用下面的指令即可
[root@localhost ~]# yum install -y httpd
安裝好以后需要修改下配置文件使apache支持php
[root@localhost ~]# vi /etc/httpd/conf/httpd.conf
//在“DirectoryIndex index.html”后面添加“index.php”
//在“AddType application/x-gzip .gz .tgz”后面添加一行“AddType application/x-httpd-php .ph”
//最后啟動apache
[root@localhost ~]# systemctl start httpd
注意:有些童鞋可能會遇到apache莫名其妙就自己掛了,可能是你內存不夠,增加點虛擬內存即可
至此apache就安裝和准備好了
五、安裝mysql
1、將前面說到的mysql yum安裝源(文末附下載鏈接)放到centos任意目錄,直接使用yum安裝。
//也可以使用wget獲取該rpm包
[root@localhost ~]# wget https://repo.mysql.com//mysql80-community-release-el7-3.noarch.rpm
//安裝yum源
[root@localhost ~]# yum -y install mysql80-community-release-el7-3.noarch.rpm
//使用yum安裝mysql
[root@localhost ~]# yum -y install mysql-community-server
注意:一般來說你會發現mysql-community-server-8.0.16-2.el7.x86_64.rpm這個包下載會很慢,所以這里我們提供百度雲盤直接下載這個包(文末附下載)。將下載好的rpm包放入目錄“/var/cache/yum/x86_64/7/mysql80-community/packages/”(不同系統可能不一樣,你可以搜索mysql80-community找到目錄位置),再次執行安裝指令即可。
2、配置mysql
//啟動mysql
[root@localhost ~]# systemctl start mysqld.service
//檢查一下運行狀態
[root@localhost ~]# systemctl status mysqld.service
注意:對於一些新手,可能會遇到mysql莫名其妙就自己關閉的情況,可能是你的內存不夠啦。linux內存不足的情況會自動關閉一些占用內存較多的應用,所以物理內存確實不足的情況可以增加點虛擬內存。
//獲取默認密碼(mysql8.0自帶默認密碼,必須使用默認密碼登錄后方可修改密碼)
[root@localhost ~]# grep "password" /var/log/mysqld.log
我這里的默認密碼是“;>HGA4LKdjlj”
//使用默認密碼進入數據庫
[root@localhost ~]# mysql -u root -p
mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'Root@123456';
Query OK, 0 rows affected (0.01 sec)
注意:進入mysql后每條指令后必須加分號“;”,否則指令不會執行
注意:mysql8.0要求密碼必須有一定復雜度,必須包含大小寫字母、數字、特殊字符,長度也不能太短,這里我配置的密碼就是Root@123456
注意:'root'@'localhost'含義是使用本地登錄的root用戶(一般建議本機登錄和遠程登錄用戶名、密碼不要一樣),如果要從外部設備訪問root用戶還需要做下面的設置
//設置root遠程訪問(如果不從外部訪問就不用此配置)
mysql> create user 'root'@'%' identified by 'Root@123456';
Query OK, 0 rows affected (0.01 sec)
//為遠程root用戶分配訪問權限
mysql> grant all on *.* to 'root'@'%' with grant option;
Query OK, 0 rows affected (0.00 sec)
注意:此處很多老的教程使用指令“grant all privileges on *.* to 'root'@'%' identified by 'Root@123456' with grant option;”,但是會報錯“ERROR 1064 (42000): You have an error in your SQL syntax;check the manual that corresponds to your MySQL server version for the right syntax to use near 'identified by 'Root@123456'' at line 1”
原因是老版本使用權限修改指令可以自動創建用戶(需要注意“root@%”與"root@localhost"是兩個用戶,便於使用不同密碼),而新版本需要手動創建用戶,然后向其分配權限
注意: *.* 表明所有數據庫的所有表,可以通過此設置限制用戶的訪問(如new.abc就是new數據庫的abc表)
//更新權限表使配置生效
mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)
//退出數據庫
mysql> exit;
Bye
//修改字符編碼為utf-8(中文世界一般使用utf-8編碼防止中文亂碼)
[root@localhost ~]# vi /etc/my.cnf
//在[mysqld]前面添加:
[client]
default-character-set=utf8
//在文件末尾添加:
character-set-server=utf8
collation-server=utf8_general_ci
//保存后重啟數據庫即可
[root@localhost ~]# systemctl restart mysqld.service
至此,數據庫安裝完畢,而且我們分別設置了本地登錄和遠程登錄的密碼。
六、安裝php
php安裝非常簡單,下面兩個指令分別安裝了php、php-mysql支持包、php常用擴展包:
[root@localhost ~]# yum install -y php php-mysql
[root@localhost ~]# yum install -y php-gd php-xml php-process php-mbstring php-bcmath
七、測試
到apache網站代碼目錄中新建index.php文件
[root@localhost ~]# vi /var/www/html/index.php
並輸入下面的代碼(此段代碼的作用是輸出php的信息):
<?php phpinfo(); ?>
保存后就可以試試訪問你新建的網站了
八、更多資料
除了前面說的mysql安裝相關的兩個rpm文件,我們還准備了一些LAMP調優相關資料,關注公眾號“零基礎愛學習”回復“LAMP”即可獲取:
1、mysql80-community-release-el7-3.noarch.rpm(mysql官方源)
2、mysql-community-server-8.0.16-2.el7.x86_64.rpm(mysql主包)
放入目錄“/var/cache/yum/x86_64/7/mysql80-community/packages/”(不同系統可能不一樣,你可以搜索mysql80-community找到目錄位置)
3、LAMP優化入門
4、Centos7防火牆配置手冊
5、php-mysql 連接方式