1. 程式人生 > >虛擬機器Linux Centos7搭建web環境(LNMP)

虛擬機器Linux Centos7搭建web環境(LNMP)

環境

環境配置

  • windows7 64位
  • vmware workstation 12
  • linux CentOS7_x64

準備

Web環境(LNMP)

LNMP 指 Linux + Nginx + Mysql + PHP
LAMP 指 Linux + Apache + Mysql + PHP

LNMP 也稱 LEMP 其中 E 表示 engine x,國外喜歡簡稱這個 Why? And this

本文安裝教程參考的是這篇文章,感謝hcchanqing博主

Linux_CentOS7_x64 安裝包

特別提醒:我用的Centos7,是7!!參考教程用的是centos6.2

安裝之前先配置防火牆,主要能讓windows系統能夠訪問80和資料庫3306埠。

# 注意,下面命令適用於centos7以下,不含centos7

vi /etc/sysconfig/iptables # 編輯防火牆配置檔案
-A INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT # 允許80埠通過防火牆
-A INPUT -m state --state NEW -m tcp -p tcp --dport 3306 -j ACCEPT # 允許3306埠通過防火牆

Linux安裝

安裝Nginx

使用yum安裝Nginx

yum install nginx

啟動Nginx服務

service nginx start

沒開成功,出現了下面的一段文字

service nginx start無法開啟

搜了一下,說版本太新,提示命令已經換了。好,那就輸入下面的命令

/bin/systemctl start nginx.service
# 更簡潔的寫法
systemctl start nginx.service

結果什麼都沒有返回,那怎麼驗證nginx服務是否有開啟?

ps -ef | grep nginx # 有返回的話表示已經開啟了

設定開機自啟

chkconfig nginx on

返回了一串提示,猜測應該是版本太新,命令又換了。

chkconfig nginx on

systemctl enable nginx.service

OK,還是什麼都沒有返回,看來linux的尿性應該是成功執行一般不會有東西返回的

systemctl is-enabled nginx.service # 驗證是否開啟,有開啟會顯示enabled

測試訪問

在瀏覽器輸入linux的ip地址,如果出現下面的內容,表示nginx搭建OK了。

welcome to nginx

centos7設定防火牆埠

然而過程並沒有那麼順利,再得到welcome頁前,我是打不開頁面的
找了下度娘,果不其然,又是和版本有關,centos的防火牆改成了firewall不再叫iptables 檢視原文

鍵入下面命令

firewall-cmd --zone=public --add-port=80/tcp --permanent
# 命令含義:
# –zone #作用域
# –add-port=80/tcp #新增埠,格式為:埠/通訊協議
# –permanent #永久生效,沒有此引數重啟後失效

然後重啟防火牆,再訪問一下地址就能看到welcome to nginx

systemctl stop firewalld.service
systemctl start firewalld.service

安裝Mysql

接著再按照教程安裝mysql,顯然只要把其中的舊命令換成新命令就能安裝mysql了。
照著這個思路,結果又踩坑了。。。道路真是坎坷

首先跑了下面的命令

yum install mysql mysql-server

第一次安裝過程很正常,還看到了complete(可能我看了一個假的complete)。

然後接下來的啟動服務、設定開機自啟等操作都是返回not found(差不多這個意思,就是沒找到)

再檢視mysql的相關程序卻是有的,而且which mysql也有返回目錄

會不會是名字的原因?於是折騰之前操作中mysql服務的名字,比如下面的命令

/bin/systemctl start mysqld.service
/bin/systemctl start mysql-server.service
/bin/systemctl start mysql.service
...

關鍵的命令Mark一下

wget http://repo.mysql.com/mysql-community-release-el7-5.noarch.rpm # step 1
rpm -ivh mysql-community-release-el7-5.noarch.rpm # step 2
yum install mysql-server # step 3

啟動Mysql服務

/bin/systemctl start mysqld.service
# 更簡潔的寫法
systemctl start mysqld.service

設定開機自啟

systemctl enable mysqld.service
systemctl is-enabled mysqld.service # 檢測是否已經設定開機自啟

配置

參考一
參考二
我的命令列記錄

vi /etc/my.cnf
mysql -u root -p // 登入賬號
mysql>use mysql; // 進入mysql資料庫
mysql>update user set password=password('root') where user='root' and host='localhost'; // 設定root的賬號密碼為root  
mysql>flush privileges; // 不重啟生效
mysql>grant all privileges on *.* to [email protected]'%' identified by 'password'; // 設定遠端連線賬號


#############################
# 該語法
# grant all privileges on 庫名.表名 to '使用者名稱'@'IP地址' identified by '密碼' with grant option;
#############################


# PS:在mysql命令下,要結束或執行命令一定要讓語句結束加上 ;號

connect mysql success

安裝PHP

安裝之前,我嘗試檢視php版本,發現是有的,版本為5.4,所以我決定升級PHP的版本

php --version

首先檢視php的安裝包(我使用的是yum安裝方式)

yum list installed | grep php

看到的都是5.4的安裝包

安裝前移除當前的安裝包,避免之後的安裝衝突

yum remove php*

新增第三方yum源

由於預設的YUM源無法升級PHP,所以需要新增第三方的YUM源,此處用到webtatic

# CentOS 6.5
rpm -Uvh http://mirror.webtatic.com/yum/el6/latest.rpm
# CentOS 7.x
rpm -Uvh http://mirror.webtatic.com/yum/el7/epel-release.rpm
rpm -Uvh http://mirror.webtatic.com/yum/el7/webtatic-release.rpm

使用yum安裝

yum install php71w -y # 基礎
yum install php71w-fpm -y # nginx連線使用
yum install php71w-mbstring -y # 寬位元組
yum install php71w-mysqlnd -y # mysql相關
yum install php71w-pecl-redis -y # redis擴充套件
yum install php71w-mcrypt -y # 加密使用
yum install php71w-opcache -y # 效能加速 php5.5 以上使用

或者

yum install php71w php71w-fpm php71w-mbstring php71w-mysqlnd php71w-pecl-redis php71w-mcrypt php71w-opcache

啟動服務

systemctl start php-fpm.service

設定開機自啟

systemctl enable php-fpm.service

配置

讓Nginx支援PHP

cp /etc/nginx/nginx.conf  /etc/nginx/nginx.confbak # 備份原有配置檔案
vi /etc/nginx/nginx.conf # 編輯這個檔案
user   nginx  nginx;  # 修改nginx執行賬號為:nginx組的nginx使用者

Esc輸入:wq儲存並退出

緊接著

cp /etc/nginx/conf.d/default.conf  /etc/nginx/conf.d/default.confbak # 備份原有配置檔案
vi /etc/nginx/conf.d/default.conf # 編輯

找到location / {增加index.php

index  index.php index.html index.htm;

接著,取消FastCGI server部分location的註釋

# pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
location ~ \.php$ {
    root           html;
    fastcgi_pass   127.0.0.1:9000;
    fastcgi_index  index.php;
    # 要注意fastcgi_param行的引數 改為 $document_root$fastcgi_script_name 或者使用絕對路徑
    fastcgi_param  SCRIPT_FILENAME   $document_root$fastcgi_script_name; 
    include        fastcgi_params;
}

如下

特殊情況:
配置成上面的方式,我的php檔案並不能正常訪問,要修改如下

$document_root$fastcgi_script_name
# 替換成絕對路徑
/usr/share/nginx/html$fastcgi_script_name

配置PHP

vi  /etc/php.ini

設定中國時區

date.timezone = PRC

允許訪問當前目錄(即PHP指令碼檔案所在之目錄)和/tmp/目錄,可以防止php木馬跨站

open_basedir = .:/tmp/

配置php-fpm

cp /etc/php-fpm.d/www.conf   /etc/php-fpm.d/www.confbak # 備份原來的配置檔案
vi /etc/php-fpm.d/www.conf
# 修改內容如下
user = nginx  # 由原來的apache換成nginx
group = nginx # 由原來的apache換成nginx

設定目錄許可權

chown nginx.nginx /usr/share/nginx/html/ -R  # 設定目錄所有者
chmod 700  /usr/share/nginx/html/ -R   # 設定目錄許可權

重啟服務

systemctl restart nginx.service   # 重啟nginx服務
systemctl restart php-fpm.service # 重啟php服務

測試

/usr/share/nginx/html/目錄下放置index.php檔案

在瀏覽器中輸入伺服器的ip,OK訪問沒問題 :)

文章內容親測有效,也是安裝過程,如果文章有內容不正確或者文章內容有誤的地方請指出 :)

End!

相關推薦

虛擬機器Linux Centos7搭建web環境LNMP

環境 環境配置 windows7 64位 vmware workstation 12 linux CentOS7_x64 準備 Web環境(LNMP) LNMP 指 Linux + Nginx + Mysql + PHP LAM

虛擬機器安裝Oracle WebCenter Sites 12c 搭建安裝環境,安裝虛擬機器

       因為工作原因需要我在虛擬機器上安裝 Oracle Webcenter 12C ,百度上找了很多資料,自己第一次研究安裝,安裝過程中有很多麻煩,為了防止自己以後忘記,也能為了幫助別人,特意記錄下來,希望能有所幫助,記得點贊。 安裝 Oracle

VirtualBox 虛擬機器配置centos6.4 spark叢集1--- 環境搭建以及所遇問題

一、前言       最近學習spark,就把一些經歷在這裡總結總結。 二、所需軟體        VirtualBox 5.1.22        作業系統 :centos6.4    CentOS-6.4-x86_64-minimal.iso        一共需要3

Centos6.5下搭建web環境Apache+mysql+php+phpMyAdmin

apache mysql php phpmyadmin 轉崗以後因為不太熟練一直沒有怎麽管理服務器,為了後續工作能夠順利展開,決定將之前的服務器重新搭建,並把某些需求整合避免以後管理起來會淩亂。首先先把web環境給搭建起來,以下是搭建過程以作後續查證使用。因為機房實在是太冷了╮(╯▽╰)╭,所

linux搭建PHP環境php+mysql+apache

一、獲取安裝包 PHP下載地址:http://cn.php.net/distributions/php-7.1.10.tar.gz Apache下載地址:http://mirrors.tuna.tsinghua.edu.cn/apache//httpd/httpd-2.4.28.

在Windows Server 2008 R2下搭建jsp環境-Tomcat的下載安裝

流行 ext 協議 解壓縮 需要 繼續 bsp shutdown 電腦系統 1.百度搜索“Tomcat官網”,點擊有標誌的官網進入,準備下載官方正版Tomcat。 2.進入Tomcat官網之後,在左邊我們看到,Tomcat的有6,7,8這三個最流行的版本,我們可以點

python分布式爬蟲搭建開發環境

back col 性能 16px 動態網頁 網頁 ebs {} 常見類 scrapy 優勢: resquests和Beautifulsoup都是庫,scrapy是框架 scrapy框架可以加入前兩項 scrapy基於twisted,性能是最大的優勢 scrapy方便擴展,

Jenkins自動化搭建測試環境

打開 自己 到你 自動化部署 找到 工具 技術分享 directory 查看 Fork項目 找到項目 單擊Fork 這時,會發送一個郵件到你的git郵箱中,點擊鏈接即可完成fork 這樣,這個工程就已經fork到自己的git上了 然後就可以下載這個工程到本機了 這

java虛擬機器(第二版) 第二章總結 -手工復現java虛擬機器記憶體溢位(OutOfMemoryError異常)

  文章概述 的java虛擬機器記憶體溢位的簡要概述,復現堆記憶體,棧記憶體,方法區的執行時常量池記憶體等區域的溢位情況,以及上述區域發生記憶體溢位的判斷方式和解決思路。   1,概述:      IDE為eclipse,需要在執

java虛擬機器(第二版) 第二章總結

本文總結下java虛擬機器的第二章的第三小節   1、(原文2.3)HotSpot虛擬機器物件探祕   文中以HotSpot虛擬機器為例,講述了java物件的建立以及訪問。   當我們寫的new關鍵字被虛擬機器執行時:  <

java虛擬機器(第二版) 第二章總結

本文主要是up主閱讀java虛擬機器(第二版) 第二章總結的總結,因為第一章主要講了java體系的過去和展望,故就暫時總結了,感興趣的可以閱讀原書。 另外推薦看原書,原書對我總結的知識有更細緻的解讀。 眾所周知,java虛擬機器對記憶體的自動管理,讓java程式設計師少了好多手動管理記憶

php手動搭建wamp環境--之 Windows系統下PHP環境搭建

1、PHP環境搭建的前提是 Apache HTTP Server (Apache 伺服器)已經安裝部署成功,並可以正常訪問到伺服器的主頁面。Apache HTTP Server 的安裝部署已經在上一篇講解的很詳細了,不清楚的可以點選“ Apache HTTP Servcer-Apache伺服器下載與

虛擬機器安裝Oracle WebCenter Sites 12cnetca 配置監聽

 上一篇文章我們寫了dbca 資料庫的建立,這篇文章我們這要繼續講解netca 監聽的配置。 (五)netca 配置監聽 1.oracle 使用者 執行:netca 2.到此我們的監聽就配置完成了,檢視監聽,輸入命令:

虛擬機器安裝Oracle WebCenter Sites 12cdbca 建立資料庫

         上一篇文章我們講述了資料庫的安裝,這一片文章我們主要講述資料庫的建立。 (四)資料庫建立 1.oracle 使用者 執行命令:dbca

虛擬機器安裝Oracle WebCenter Sites 12cOracle Database Enterprise Edition 12c 安裝

       上一篇文章我們寫到了如何向虛擬機器中共享本地檔案,這一篇文章我們重要講解的就是如何在虛擬機器中安裝 Oracle Database Enterprise Edition 12c ,如有幫助記得點贊。 安裝檔案: Jdk安裝包 :j

虛擬機器安裝Oracle WebCenter Sites 12c本地檔案與虛擬共享設定

       上一篇部落格裡面記載了虛擬機器的安裝教程,以及Oracle Webcenter Sites 12C 安裝步驟區分,下面就讓我一起來設定一下本地檔案與虛擬機器共享,如果有幫助記得轉載+點贊。 (二)本地檔案與虛擬共享設定 1.安裝前環境設定

深入理解java虛擬機器之自動記憶體管理機制

垃圾收集演算法     java中的記憶體是交給虛擬機器管理的。要實現垃圾回收,必須考慮如下三個問題:     1. 哪些記憶體需要回收?     2. 什麼時候回收?     3. 怎麼回收?     對於第一點,往大了來說,是堆和方法區的記憶體需要回收。往具體了來說,是堆中哪些物件的記憶體可以回

深入理解java虛擬機器之自動記憶體管理機制

  各類垃圾收集器與GC日誌 (一)垃圾收集器   一、Serial收集器     最基本、歷史最悠久的收集器。使用複製演算法,用在新生代,通常老年代用Serial old配合。GC過程需要stop the world。適用於client模式下的虛擬機器。   二、ParNew收集器  

深入理解java虛擬機器之自動記憶體管理機制

記憶體分配與回收策略 (一)記憶體分配策略     給誰分配?分配到哪?是記憶體分配策略必須解答的問題。     java物件是分配的物件,往大方向來說,是分配到堆中,更細一點說,根據物件不同的特點分配到新生代和老年代區域。如果啟動了本地執行緒分配緩衝,就按執行緒優先在TLAB上分配。     一、新

linux部署java web 專案筆記

建立資料夾  # mkdir java //   建立資料夾java,mysql,tomcat 個人習慣 我喜歡分開資料夾安裝 # cd java //   開啟新建立的資料夾  JDK