歡迎來到Abner的部落格,剛開始學習PHPer, 或多或少都會為了部署一個穩定的開發環境懊惱。
今天我們就一起來學習一下Wins+Linux的環境部署
一. Wins環境
- 推薦使用WAMP: W->windows A->apache M->mysql P->php
- 下載地址: http://www.wampserver.com/en/
- 選擇合適自己電腦的版本:
- Wamp是傻瓜式安裝,全部選擇預設安裝即可
- 安裝完成之後,啟動程式待圖示變成綠色說明已成功安裝
- 在瀏覽器輸入127.0.0.1 或者 localhost 即可看到歡迎頁面
- 到此已完成安裝,在安裝目錄下www資料夾中,新建一個index.php
<?php echo phpinfo();
二. Linux環境
- 在linux環境中一般都是部署效能更優的Nginx,便於支援更多的併發。具體的請自行Google
- 因此在Linux的環境的PHP環境一般叫做,LNMP:Linux+Nginx+Mysql+PHP
我購買的阿里雲是centos7.3的.在Linux下,搭建服務最好當然是LNMP了,畢竟PHP是世界上最好的語言(開玩笑了 0.0)。當然LAMP也很好,我就是Apache從轉投Nginx的,就因為Nginx配置簡單,資源佔用低.當然Apache也有他的優點,孰優孰劣,還是要根據自己的需要取捨吧。
言歸正傳,LNMP是Linux、Nginx、MySQL(Mariadb)、PHP。在centos上,預設的資料不再是MySQL了,成了Mariadb,這是MySQL的社群版,基本上是完全相容MySQL的,對普通開發者而言,基本感覺得不到差別的。
開始搭建環境
安裝Nginx
安裝Nginx,在Linux上可是使用yum安裝Nginx,也可以編譯原始碼安裝,鑑於我購買的伺服器效能的原因,我還是用yum安裝吧.
使用
yum search nginx
檢視是否Nginx包,阿里雲的centos預設是有Nginx包的.
使用
yum -y install nginx
使用-y會自動解決依賴問題
等待安裝完成,沒有報錯的話,安裝成功了。使用
service nginx start
開啟Nginx服務,使用
systemctl enable nginx
把Nginx設為開機啟動。
使用curl 127.0.0.1看一下,返回html程式碼,說明成功了
安裝Mariadb或者MySQL
安裝Mariadb或者MySQL,在centos中,Mariadb可以直接使用yum安裝。由於centos的yum中預設沒有MySQL的源,必須手動新增MySQL源,才能安裝。
安裝Mariadb:
yum -y install mariadb mariadb-server
不出意外的話,會成功安裝.
service mariadb start
開啟Nginx服務,使用
systemctl enable mariadb
把mariadb設為開機啟動。
簡單配置Mariadb 輸入
mysql_secure_installation
1.顯示 Enter current password for root (enter for none): 第一次執行直接回車
2.Set root password? [Y/n] 是否設定root使用者密碼,輸入y並回車或直接回車
3.New password: 設定root使用者的密碼
4.Re-enter new password: 再輸入一次你設定的密碼
5.Remove anonymous users? [Y/n] 是否刪除匿名使用者,回車
6.Disallow root login remotely? [Y/n] 是否禁止root遠端登入,回車,
7.Remove test database and access to it? [Y/n] 是否刪除test資料庫,回車
8.Reload privilege tables now? [Y/n] 是否重新載入許可權表,回車
mysql -uroot -ppassword
登入測試一下
centos中的Mariadb版本是5.5,對標的MySQL5.5版本,最新的穩定版Mariadb是10.3,怎麼安裝最新版的Mariadb等以後有時間再更新
安裝MySQL:
新增MySQL的yum源wget https://repo.mysql.com//mysql80-community-...
rpm -Uvh platform-and-version-specific-package-name.rpm新增MySQL
現在預設會安裝MySQL8.0版本,如果想要5.7大的話 1.yum-config-manager --disable mysql80-community 2.yum-config-manager --enable mysql57-community
開始安裝yum install mysql-community-server
service mysqld start開啟MySQL服務,
systemctl enable mysql 設為開機啟動
這時候MySQL是沒有沒密碼的,需要找到密碼sudo grep 'temporary password' /var/log/mysqld.log能看到密碼
8.登入,mysql -uroot -p 看到的密碼
修改密碼 ALTER USER 'root'@'localhost' IDENTIFIED BY 'newpassword';
附上MySQL官網的安裝教程傳送門
安裝php
php可以使用原始碼安裝,也可以使用yum安裝,鑑於我的伺服器的效能,還是選擇了yum安裝。yun安裝首先要新增源。
配置yum源
rpm -Uvh https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
。
rpm -Uvh https://mirror.webtatic.com/yum/el7/webtatic-release.rpm
安裝php7.2和需要的擴充
yum -y install php72w php72w-cli php72w-common php72w-devel php72w-embedded php72w-fpm php72w-gd php72w-mbstring php72w-mysqlnd php72w-opcache php72w-pdo php72w-xml
如果應用yum安裝redis的話
yum -y install php72w-pecl-redis
開啟php-fpm 服務,
service php-fpm start
systemctl enable php-fpm
設為開機啟動
好了LNMP需要的軟體都安裝好了,簡單配置一下
配置
Nginx配置
cd /etc/nginx/
vim nginx.conf
修改配置檔案
server {
listen 80 default_server;
listen [::]:80 default_server;
server_name _;
root /home/www/default;
return 500;#我禁用了ip訪問
# Load configuration files for the default server block.
include /etc/nginx/default.d/*.conf;
error_page 404 /404.html;
location = /40x.html {
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
}
location ~ \.php$ {
root /home/www/default;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
}
php相關的部分是這裡
location ~ \.php$ {
root /home/www/default;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
重啟
Nginx,service nginx restart
好了去 Nginx的的root目錄裡新建一個info.php檔案,測試一下
<?php
phpinfo();
?>
訪問一下你的伺服器看一下,能看到php的資訊,說明已經配置好了
到這裡,LNMP開發環境已經搭建好了,可以愉快的開發了。