centos7 yum安裝LAMP


說明:我安裝后的版本號分別是:

apache : Apache/2.4.6 (CentOS)
mysql:5.6.42
php:5.6.39

 

一、配置網絡。

我們首先需要讓我們的虛擬機能夠連接上外網,這樣才能方便我們使用yum進行安裝。

1、如果只是自己開發用的話,最簡潔的配置,我們只需要配置一個IP和網關就可以了(根據自己的實際情況)

vim /etc/sysconfig/network-scripts/ifcfg-ens33

DEVICE=ens33 IPADDR=192.168.1.101 GATEWAY=192.168.1.1 ZONE=public

2、配置DNS,具體的值可以在 cmd 的ipconfig -all 進行查看

vim /etc/resolv.conf

nameserver xxx.xxx.xxx.xxx

3、service network restart // 重啟網絡服務

4、ping 192.168.1.101 或 ping www.baidul.com //檢測網絡是否可以連接網絡了。


二、配置防火牆和SELINUX

開啟80、3306端口。CentOS 7.0默認使用的是firewall作為防火牆,這里改為iptables防火牆

1、關閉firewall

#停止firewall服務
systemctl stop firewalld.service

#禁止firewall開機啟動
systemctl disable firewalld.service

2、安裝iptables

yum install iptables-services


#編輯防火牆配置文件

vim /etc/sysconfig/iptables

加入紅色的兩行代碼,請注意位置一定要對應。

1 # sample configuration for iptables service
2 # you can edit this manually or use system-config-firewall
3 # please do not ask us to add additional ports/services to this default configuration
4 *filter 5 :INPUT ACCEPT [0:0] 6 :FORWARD ACCEPT [0:0] 7 :OUTPUT ACCEPT [0:0] 8 -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT 9 -A INPUT -p icmp -j ACCEPT 10 -A INPUT -i lo -j ACCEPT 11 -A INPUT -p tcp -m state --state NEW -m tcp --dport 22 -j ACCEPT 12 -A INPUT -p tcp -m state --state NEW -m tcp --dport 80 -j ACCEPT 13 -A INPUT -p tcp -m state --state NEW -m tcp --dport 3306 -j ACCEPT 14 -A INPUT -j REJECT --reject-with icmp-host-prohibited 15 -A FORWARD -j REJECT --reject-with icmp-host-prohibited 16 COMMIT


3、最后重啟防火牆使配置生效

systemctl restart iptables.service
#設置防火牆開機啟動
systemctl enable iptables.service

4、關閉selinux
#修改配置文件
vi /etc/selinux/config

1 
2 # This file controls the state of SELinux on the system.
3 # SELINUX= can take one of these three values:
4 # enforcing - SELinux security policy is enforced.
5 # permissive - SELinux prints warnings instead of enforcing.
6 # disabled - No SELinux policy is loaded.
7 #SELINUX=enforcing
8 SELINUX=disabled 9 # SELINUXTYPE= can take one of three two values:
10 # targeted - Targeted processes are protected,
11 # minimum - Modification of targeted policy. Only selected processes are protected. 
12 # mls - Multi Level Security protection.
13 #SELINUXTYPE=targeted

 

5、使配置立即生效
setenforce 0


三、安裝apache

yum install -y httpd

可能會用到的:

systemctl start httpd.service //啟動apache
 systemctl stop httpd.service //停止apache
 systemctl restart httpd.service //重啟apache
 systemctl enable httpd.service //設置apache開機啟動
 systemctl restart httpd.service //重啟服務

輸入 192.168.1.101 出現如下界面,就代表apache安裝成功。

 

拓展:如何查看apache配置文件 httpd.conf 的路徑

我們只需要執行 httpd -V 就可以了,輸出如下:

其中HTTPD_ROOTSERVER_CONFIG_FILE  就可以確定httpd.conf的路徑了

 2、目錄文件

  • 程序目錄:/usr/sbin/httpd
  • 默認網站主頁存放目錄: /var/www/html/
  • 日志文件存放目錄:/var/log/httpd/
  • 主配置文件:/etc/httpd/conf/httpd.conf
  • 從配置文件:/etc/httpd/conf.d/

3、主配置文件的一些參數

ServerRoot “/etc/httpd“         //服務配置文件目錄
PidFile run/httpd.pid              //PID文件
Listen 80                          //默認監聽端口
Include conf.modules.d/ *.conf      //包含模塊目錄的配置文件
User apache                          //啟動用戶
Group apache                      //啟動組
ServerAdmin root@localhost          //管理員郵箱
ServerName www.example.com:80      //域名主機名
DocumentRoot “/var/www/html“      //默認主頁存放目錄
DirectoryIndex index.html index.html.var //索引文件
<Directory "/var/www">            //規定網站根目錄的位置
 AllowOverride All # Allow open access:
    Require all granted </Directory> ErrorLog logs/error_log               //錯誤日志
CustomLog logs/access_log combined //訪問日志
AddDefaultCharset UTF-8            //默認字符集
IncludeOptional conf.d/ *.conf      //包含了 conf.d/*.conf 的配置文件
 
<IfModule dir_module> DirectoryIndex index.html      //默認索引
</IfModule>

4、配置多個站點

在配置文件中  /etc/httpd/conf.d/   下創建一個配置文件,我們新建一個 port.conf 文件(*.conf都可被自動包含進來,名字可以自己取),然后加入下面幾行:

Listen 8080
<VirtualHost *:80> DocumentRoot /var/www/html/web1 </VirtualHost>
<VirtualHost *:8080> DocumentRoot /var/www/html/web2 </VirtualHost>

注:

yum 安裝的apache,httpd.conf 里面默認沒有 LoadModule 的相關配置,需要我們手動去添加,

但是必須配置 modules(默認為:/usr/lib64/httpd/modules/) 里面有的 .so 文件。下面我以配置 mod_rewrite.so為例,

1、vim /etc/httpd/conf/httpd.conf , 添加 LoadModule rewrite_module modules/mod_rewrite.so

就可了,當然如果需要使用這個 rewrite 模塊,還需要將所有的 AllowOverride 改成 all 才行。

 附:

//常用的LoadModule有這些,按需加入
LoadModule auth_basic_module modules/mod_auth_basic.so LoadModule auth_digest_module modules/mod_auth_digest.so LoadModule authn_file_module modules/mod_authn_file.so LoadModule authn_alias_module modules/mod_authn_alias.so LoadModule authn_anon_module modules/mod_authn_anon.so LoadModule authn_dbm_module modules/mod_authn_dbm.so LoadModule authn_default_module modules/mod_authn_default.so LoadModule authz_host_module modules/mod_authz_host.so LoadModule authz_user_module modules/mod_authz_user.so LoadModule authz_owner_module modules/mod_authz_owner.so LoadModule authz_groupfile_module modules/mod_authz_groupfile.so LoadModule authz_dbm_module modules/mod_authz_dbm.so LoadModule authz_default_module modules/mod_authz_default.so LoadModule ldap_module modules/mod_ldap.so LoadModule authnz_ldap_module modules/mod_authnz_ldap.so LoadModule include_module modules/mod_include.so LoadModule log_config_module modules/mod_log_config.so LoadModule logio_module modules/mod_logio.so LoadModule env_module modules/mod_env.so LoadModule ext_filter_module modules/mod_ext_filter.so LoadModule mime_magic_module modules/mod_mime_magic.so LoadModule expires_module modules/mod_expires.so LoadModule deflate_module modules/mod_deflate.so LoadModule headers_module modules/mod_headers.so LoadModule usertrack_module modules/mod_usertrack.so LoadModule setenvif_module modules/mod_setenvif.so LoadModule mime_module modules/mod_mime.so LoadModule dav_module modules/mod_dav.so LoadModule status_module modules/mod_status.so LoadModule autoindex_module modules/mod_autoindex.so LoadModule info_module modules/mod_info.so LoadModule dav_fs_module modules/mod_dav_fs.so LoadModule vhost_alias_module modules/mod_vhost_alias.so LoadModule negotiation_module modules/mod_negotiation.so LoadModule dir_module modules/mod_dir.so LoadModule actions_module modules/mod_actions.so LoadModule speling_module modules/mod_speling.so LoadModule userdir_module modules/mod_userdir.so LoadModule alias_module modules/mod_alias.so LoadModule substitute_module modules/mod_substitute.so LoadModule rewrite_module modules/mod_rewrite.so LoadModule proxy_module modules/mod_proxy.so LoadModule proxy_balancer_module modules/mod_proxy_balancer.so LoadModule proxy_ftp_module modules/mod_proxy_ftp.so LoadModule proxy_http_module modules/mod_proxy_http.so LoadModule proxy_ajp_module modules/mod_proxy_ajp.so LoadModule proxy_connect_module modules/mod_proxy_connect.so LoadModule cache_module modules/mod_cache.so LoadModule suexec_module modules/mod_suexec.so LoadModule disk_cache_module modules/mod_disk_cache.so LoadModule cgi_module modules/mod_cgi.so LoadModule version_module modules/mod_version.so

四、安裝mysql

由於yum源上沒有mysql-server。所以必須去官網下載后在安裝嗎,這里我們用wget命令,直接獲取。 

wget http://dev.mysql.com/get/mysql-community-release-el7-5.noarch.rpm

rpm -ivh mysql-community-release-el7-5.noarch.rpm   // Redhat Linux Package Manager 紅帽包管理器, -i : install

yum install -y mysql-community-server

systemctl restart mysqld.service //安裝完成后重啟mysql

初始安裝 root用戶沒有密碼,設置一個秘密

mysql -u root

#設置msyql密碼為 123456
mysql> set password for 'root'@'localhost' =password('123456');

#遠程連接設置,所有以root賬號連接的遠程用戶,設其密碼為 123456
mysql> grant all privileges on *.* to root@'%'identified by '123456';

#更新權限
mysql>flush privileges;  

 

下面我來說一下如何在mysql中找到yum安裝的rpm包。

a、首先我們進入mysql官網 www.mysql.com

b、點擊DOWNLOADS.

c、點擊 Yum Repository

 

d、選擇復制這個名字

e、然后回到自己的服務器,用 wget http://dev.mysql.com/get/ 接上復制的這個名字就可以下載最新的 Yum release 安裝包

 f、詳細使用教程請看最先文檔。

 

五、安裝PHP

由於自帶的yum 源php版本是 php5.4 ,我覺得有點兒低,在此安裝php5.6

首先我們需要追加CentOS 7.0的epel及remi源。

yum install -y epel-release //EPEL(Extra Pacakges for Enterprise Linux ) 為紅帽操作系統提供的額外軟件包,首先我們需要安裝一個叫”epel-release”的軟件包,這個軟件包會自動配置yum的軟件倉庫

rpm -ivh http://rpms.famillecollet.com/enterprise/remi-release-7.rpm //Remi repository 是包含最新版本 PHP 和 MySQL 包的 Linux 源,由 Remi 提供維護。有個這個源之后,使用 YUM 安裝或更新 PHP、MySQL、phpMyAdmin 等服務器相關程序的時候就非常方便了,相關內容可以參考http://www.ttlsa.com/yum/linux-remi-repository/

//使用yum list命令查看可安裝的包(Packege)。
yum list --enablerepo=remi --enablerepo=remi-php56 | grep php

//yum源配置好了,下一步就安裝PHP5.6。

yum install -y --enablerepo=remi --enablerepo=remi-php56 php php-opcache php-devel php-mbstring php-mcrypt php-mysqlnd php-phpunit-PHPUnit php-pecl-xdebug php-pecl-xhprof php-gd

//今后如果需要添加拓展也很方便,只需要執行:

yum install -y --enablerepo=remi --enablerepo=remi-php56  拓展名 ,如我現在需要添加 pgsql拓展,只需要執行:

yum install -y --enablerepo=remi --enablerepo=remi-php56 php-pgsql 

//用PHP命令查看版本。
php --version

六、驗證LAMP是否安裝成功

1、重啟一下 apache 和 mysql

2、cd /var/www/html

vim index.php 寫入 phpinfo();

驗證 http://192.168.4.147/index.php ,出現如下界面,代表安裝OK。

到此為止,我們的LAMP環境就搭建好啦!

 

六、composer

1、安裝composer

curl -sS https://getcomposer.org/installer | php

mv composer.phar /usr/local/bin/composer

2、配置packagist中國鏡像

composer config -g repo.packagist composer https://packagist.phpcomposer.com

composer不允許用root來執行,如果是root賬號會報 Do not run Composer as root/super user! See https://getcomposer.org/root for details 的錯誤,需要使用一般賬號來執行

3、使用composer安裝yii2-app-basic項目

composer create-project --prefer-dist --stability=dev yiisoft/yii2-app-basic basic

如果出現報 mkdir();permission denied 的錯誤,我們需要將 /var/www/html 目錄的權限修改一下。

 

 

七、安裝samba

1、yum install -y samba

2、首先我們需要有一個管理 samba 的賬號,可以用 useradd 單獨創建一個,也可以使用現有的賬號,我這里就使用已經擁有的 carroll 賬號。

3、將賬號添加到 samba 中,作為管理samba的賬號,這一步很重要,因為高版本已經不支持share模式了,只能使用 user 模式

smbpasswd -a carroll

4、配置 smb.conf

安裝成功之后,cd /etc/samba/,我們將原有的 smb.conf 備份,新增一個 smb.conf ,配置如下:

[global] #Samba Server 所要加入的工作組或者域
workgroup = SAMBA #設定Samba的注釋,可以是任何字符串,宏%v表示顯示Samba的版本號
server string = Samba Server Version %v #如下兩行替代原來的 share 模式
security = user map to guest =Bad User #登錄時需要輸入密碼
encrypt passwords=yes smb password file=/etc/samba/smbpasswd [carroll] //共享的路徑
path = /var/www/html/ writeable = yes #指定該共享是否可以瀏覽
browseable = yes guest ok = yes #驗證的賬號,這個賬號需要提前使用smbpasswd -a carroll
valid users=carroll

 

5、檢查配置文件是否有異常,重啟samba

testparm  // 如果有異常,可以根據提示去排錯

service smb restart

6、將我們的共享目錄的用戶組和權限更改為samba管理賬號
chown -R carroll.carroll /var/www/html
chmod -R 777 /var/www/html

7、最好我們還需要關閉防火牆或者設定相應的過濾規則才能正常訪問

service iptables stop

然后我們在客戶端就可以連接了

 

八、.htaccess 文件

<IfModule mod_rewrite.c> Options +FollowSymlinks RewriteEngine On RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_FILENAME} !-f RewriteRule ^(.*)$ index.php/$1 [QSA,PT,L] </IfModule>

 

 如果是windows 下的 phpstudy 搭建的環境,上面的配置如果無效,可以試一下如下配置:

<IfModule mod_rewrite.c> Options +FollowSymLinks IndexIgnore */* RewriteEngine on # if a directory or a file exists, use it directly RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d # otherwise forward it to index.php RewriteRule . index.php </IfModule>

參考了博友的博客:https://www.linuxidc.com/Linux/2016-11/136766.htm

https://www.cnblogs.com/jie-hu/p/5950584.html

感謝他們!

本文為袋鼠同學(Chrdai)工作中的總結,如有轉載,請注明出處:https://www.cnblogs.com/chrdai/p/10168259.html


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM