# 安張LNMP環境
> 作為一個PHP程序員,需要懂得在Linux下安裝環境,這是基本的技能!現在讓我們手動的來安裝吧,我們將使用三種方式來安裝我們的環境,即通過在線安裝,編譯安裝以及腳本安裝,來進行我們的操作!你準備好了嗎?
**在線安裝:** 在線軟件倉庫的使用,給我們帶來許多便利,這種模式使得我們不再需要將時間花費在漫長的編譯等待上,而是直接使用已經編譯好的rpm包來安裝,省時省力,便于維護和升級,但是可制定程度不高。適合小環境,核心功能都具備,快速搭建環境。
**二進制包安裝:** 它是發布出來時預先編譯過的,既避免了編譯的麻煩,又提供了增強功能。
**編譯安裝:** 將耗費大量的時間在編譯上,并且隨時可能出現各種錯誤,但是你可以自定義包的安裝和配置文件的位置,在一定程度上,編譯安裝性能要高。可制定程度高,但是維護比較麻煩。它的要求高,要有編譯環境,編譯時可指定幾乎所有選項,可滿足你的所有選擇。
**腳本安裝:** 腳本安裝一般是通過sh執行文件來安裝的一種便捷安裝方式,使用這種方式,不再需要自己手動一個個軟件從頭安裝到尾,而是使用交互界面,來完成安裝選擇,方便快捷
下面我們在CentOS7下安裝 Nginx + PHP + MairaDB
## 安裝Nginx
### 1. 使用yum在線安裝
```bash
sudo yum install nginx -y
```
### 2. 使用編譯安裝方式
1. 首先先安裝依賴和庫
```bash
sudo yum install gcc gcc-c++ pcre pcre-devel zlib zlib-devel openssl openssl-devel
```
2. 獲取nginx源文件包(當前的穩定版本)
```bash
wget -c https://nginx.org/download/nginx-1.12.2.tar.gz
```
3. 解壓文件
```bash
tar -zvxf nginx-1.12.2.tar.gz
```
4. 進入目錄
```bash
cd nginx-1.12.2
```
5. 使用默認配置,將nginx安裝到/usr/local/nginx下
```bash
./configure --prefix=/usr/local/nginx
```
6. 編譯安裝
```bash
make && sudo make install
```
7. 添加鏈接到/usr/bin 下,便于快速啟動
```bash
sudo ln -s /usr/local/nginx/sbin/nginx /usr/bin/nigix
```
8. nginx的進程管理
```bash
sudo nginx #啟動
sudo nginx -s stop #強制停止
sudo nginx -s quit #等待nginx任務處理完畢后停止
sudo nginx -s reload #重載配置文件
##查看進程是否啟動
ps aux|grep nginx
```
9. 如需開機啟動,嘗試下列方法
> 編輯此文件,末尾添加nginx的路徑地址
```bash
vim /etc/rc/local #添加如下內容到文件末位置
/usr/local/nginx/sbin/nginx
```
10. 設置執行權限
```bash
sudo chmod 755 /etc/rc.local
```
## 安裝PHP
### 使用yum源安裝php
```bash
sudo yum install php
```
1. 使用yum安裝,需要安裝的部分擴展和依賴
```bash
sudo yum install php-mysql php-gd php-ldap php-odbc php-pear php-xml php-xmlrpc php-mbstring php-bcmath php-mhash
```
### 通過編譯安裝PHP
1. 安裝php7需要的一些依賴庫包 libxml2和一些其他依賴的擴展庫
```bash
sudo yum install libxml2 libxml2-devel openssl openssl-devel curl-devel libjpeg-devel libpng-devel freetype-devel bzip2-devel libmcrypt libmcrypt-devel postgresql-devel aspell-devel readline-devel libxslt-devel mysql-devel sqlite-devel gmp-devel db4-devel openldap openldap-devel enchant-devel libvpx-devel libXpm-devel libc-client-devel libicu-devel unixODBC-devel net-snmp-devel
```
> 安裝前的環境配置檢查,php7的一些依賴包的檢查和php擴展的啟動,這個過程如果缺少php依賴的庫包會有報錯提示。在你的機器上可能由于倉庫源的問題,某些包安裝會報錯,建議安裝epel源:sudo yum install epel-release
2. 添加用戶和組
```bash
sudo groupadd -r www
sudo useradd -r -g www -s /sbin/nologin www
```
3. 開始配置
```bash
./configure --prefix=/usr/local/php --with-config-file-path=/usr/local/php/etc --enable-fpm --with-fpm-user=www --with-fpm-group=www --enable-inline-optimization --disable-debug --disable-rpath --enable-shared --enable-soap --with-xmlrpc --with-openssl --with-mcrypt --with-pcre-regex --with-sqlite3 --with-zlib --enable-bcmath --with-iconv --with-bz2 --enable-calendar --with-curl --with-cdb --enable-dom --enable-exif --enable-fileinfo --enable-filter --with-pcre-dir --enable-ftp --with-gd --with-openssl-dir --with-jpeg-dir --with-png-dir --with-freetype-dir --enable-gd-native-ttf --enable-gd-jis-conv --with-gettext --with-gmp --with-mhash --enable-json --enable-mbstring --enable-mbregex --enable-mbregex-backtrack --with-libmbfl --with-onig --enable-pdo --with-mysqli=mysqlnd --with-pdo-mysql=mysqlnd --with-zlib-dir --with-pdo-sqlite --with-readline --enable-session --enable-shmop --enable-simplexml --enable-sockets --enable-sysvmsg --enable-sysvsem --enable-sysvshm --enable-wddx --with-libxml-dir --with-xsl --enable-zip --enable-mysqlnd-compression-support --with-pear --enable-opcache
```
4. 編譯 安裝
```bash
make && sudo make install
```
## 安裝MariaDB
> 由于MySQL存在閉源的風險,現在redhat系列的發行版本已經將默認的MySQL數據庫更換為MariaDB,在此處,我們以MariaDB為例,展示安裝配置
### 使用yum命令安裝
> 由于CentOS倉庫的包版本可能相對較低,因此,我們手動添加我們的yum源。
1. 添加 MariaDB yum 倉庫
```bash
vi /etc/yum.repos.d/MariaDB.repo
```
2. 插入如下內容
```bash
[mariadb]
name = MariaDB
baseurl = http://yum.mariadb.org/10.1/centos7-amd64
gpgkey=https://yum.mariadb.org/RPM-GPG-KEY-MariaDB
gpgcheck=1
```
3. 安裝 MariaDB
```bash
sudo yum install MariaDB-server MariaDB-client -y
```
4. MariaDB的進程管理
```bash
systemctl start mariadb #啟動服務
systemctl enable mariadb #開機啟動
systemctl status mariadb #狀態查看
systemctl stop mariadb #停止服務
```
5. 對 MariaDB 進行安全配置
> 通過這項命令,設置 MariaDB 的 root 賬戶密碼,禁用 root 遠程登錄,刪除測試數據庫以及測試帳號,最后需要使用下面的命令重新加載權限。使用前,請確保你已經啟動了MariaDB服務,否則將報錯。
```bash
mysql_secure_installation
```
6. 嘗試登陸數據庫(使用你自己的密碼)
```bash
mysql -u root -p
```
### 通過二進制分發包安裝MariaDB
> 通過二進制包的形式,可以快速解決軟件版本問題,又不需要浪費太長的時間在編譯上,我們只需要解壓文件后通過簡單的配置,就可以使用他們。
**MariaDB安裝注意:** 安裝路徑必須指定在/usr/local目錄下,并且目錄名稱必須命名為mysql,否則某些腳本將會無法運行,導致無法安裝
1. 下載二進制包。下載地址:https://downloads.mariadb.org
我選擇的是MariaDB 10.0 Stable 版本,現在已經到了33的小版本了,大家按需選擇版本
我的機器是64位的,對應 OS/CPU 選項欄 Linux x86_64 可以看到三個包提供選擇,區別不是特別大,我們選擇普適的包 mariadb-10.0.33-lnux-x86_64.tar.gz。
1. 解壓文件
在下載完成后,將其上傳到Linux機器上,使用如下命令解壓
tar -zvxf mariadb-10.0.33-lnux-x86_64.tar.gz
解壓后得到同名的文件夾 mariadb-10.0.33-lnux-x86_64,可以嘗試著自行查看安裝操作步驟,該文件是:INSTALL-BINARY
1. 創建用戶
我們要創建一個mysql的用戶,它可以對以后的mysql數據庫進行管理,同時我們還可以指定mysql的家目錄,這樣以后它的存儲數據就可以獨立出來放置了,同時指明shell類型為nologin
groupadd mysql
useradd -g mysql -s /sbin/nologin mysql
1. 文件夾移動
將解壓出來的文件夾移動到/usr/local文件夾下,并重命名或者創建軟鏈接為mysql
mv mariadb-10.0.33-lnux-x86_64 /usr/local/mysql #直接重命名
或者:mv mariadb-10.0.33-lnux-x86_64 /usr/local/ #先拷貝到文件夾 后創建軟連接,此方法便于后期版本管理
cd /usr/local
ln -s mariadb-10.0.33-lnux-x86_64 mysql
1. 確保你使用了正確的my.cnf文件
my.cnf為MariaDB的配置文件,在mariadb安裝目錄下的support-files有好幾種配置模板,已經配置好的部分參數,分別用于不同的環境。
1. my-small.cnf 這個是為小型數據庫或者個人測試使用的,不能用于生產環境
1. my-medium.cnf 這個適用于中等規模的數據庫,比如個人項目或者小型企業項目中,
1. my-large.cnf 一般用于專門提供SQL服務的服務器中,即專門運行數據庫服務的主機,配置要求要更高一些,適用于生產環境
1. my-huge.cnf 用于企業級服務器中的數據庫服務,一般更多用于生產環境使用
我們暫且使用my-small.cnf文件
mv /etc/my.cnf /etc/my.cnf.bak #備份默認配置
cp support-files/my-huge.cnf /etc/mysql/my.cnf #使用新的配置文件
1. 編輯配置文件
在[mysqld]塊中添加basedir全局目錄將默認的數據目錄,日志目錄,pid文件都放置在basedir目錄下
```bash
vim /etc/my.cnf
basedir = /usr/local/mysql #此處添加你的實際路徑到[mysqld]模塊下
```
1. 初始化
cd /usr/local/mysql/
./scripts/mysql_install_db --user=mysql
1. 權限設置
chown -R mysql .
chgrp -R mysql data
1. 啟動腳本
```bash
bin/mysqld_safe --user=mysql &
```
**注意:** 出現錯誤提示mysql是對/var/log/這個目錄沒有寫權限,請手動創建文件夾并給予權限
添加mysql到系統服務目錄
```bash
cp support-files/mysql.server /etc/init.d/mysqld
```
第一次安裝需要手動啟動服務
```bash
/etc/init.d/mysqld start
```
添加mysqld到系統服務,隨系統一起啟動
```bash
chkconfig mysqld on
```
查看mysql服務運行狀態:
```bash
systemctl status mysqld.service
```
1. 添加環境變量
```bash
vi /etc/profile
export PATH=/usr/local/mysql/bin:$PATH
source /etc/profile
```
1. 嘗試登陸
```bash
mysql_secure_installation #數據庫安全配置,在此可以設置root密碼
mysql -u yourname -p yourpassword #登陸命令
```
> 本文有借鑒:[PHP自學網](http://zixuephp.net/article-207.html),[Linux就該這樣學](http://www.linuxprobe.com/centos7-mariadb10-easy.html)
- 前言
- PHP進階之路
- 1.LANMP的環境安裝
- C與數據結構
- PYTHON
- JAVA
- GO入門實踐
- 1.入門語法
- 1.安裝配置GO環境
- 2.數據類型定義
- 3.運算符
- 4.控制語句
- 5.數組
- 6.切片
- 7.函數
- 8.結構體
- 注意事項
- Linux爬坑之路
- 1.zabbix服務
- 1.在龍芯Fedora機器上部署
- Git版本控制
- 0.工作流程與原理
- 1.安裝Git
- 2.安裝后配置
- 3.基礎命令
- 數據庫實踐
- 1.SQL基礎語法
- 1.基本語法
- 2.MySQL實踐
- 1.數據庫常用操作
- Docker容器技術
- 1.Docker常用命令
- 2.進階
- Vagrant虛擬化技術
- 1.基本命令詳解
- 2.進階教程
- WEB前端之旅
- CSS入門
- 1.CSS選擇器
- 操作系統
- 雜談一之系統啟動引導