说明:我安装后的版本号分别是:

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

centos7 yum安装LAMP的更多相关文章

  1. CentOS7 yum安装lamp环境

    1.安装apache yum install httpd #根据提示,输入Y安装即可成功安装 systemctl start httpd.service #启动apache systemctl sto ...

  2. CentOS7 yum 安装git

    1.查看系统是否已经安装git git --version 2.CentOS7 yum 安装git yum install -y git 3.安装成功 4.卸载git yum remove git

  3. CentOS6.5下 yum安装LAMP

    CentOS下yum安装LAMP   1. 用yum安装Apache,Mysql,PHP. 1.1安装Apache yum install httpd httpd-devel 安装完成后,用/etc/ ...

  4. [转帖]Centos7 yum安装Chrome浏览器

    Centos7 yum安装Chrome浏览器 https://www.cnblogs.com/ianduin/p/8727333.html以及https://blog.csdn.net/libaine ...

  5. yum安装LAMP环境与管理(七)

    [教程主题]:yum安装LAMP环境与管理 [1] 什么是LAMP 目前世界最流行的企业建站方式是LAMP(Linux+Apache+MySQL+PHP),即使用Linux作为操作系统,Apache作 ...

  6. centos 安装卸载软件命令 & yum安装LAMP环境

    安装一个软件时 yum -y install httpd 安装多个相类似的软件时 yum -y install httpd* 安装多个非类似软件时 yum -y install httpd php p ...

  7. CentOS yum 安装LAMP PHP5.4版本

    CentOS yum 安装LAMP PHP5.4版本 [日期:2015-06-04] 来源:Linux社区  作者:rogerzhanglijie [字体:大 中 小]     Linux系统版本:C ...

  8. centos7 yum安装配置redis 并设置密码

    原文:https://www.cnblogs.com/fanlinglong/p/6635828.html centos7 yum安装配置redis 并设置密码 1.设置Redis的仓库地址 yum ...

  9. centos7 yum安装遇到报错:Head V3 RSA/SHA256 Signature, key ID 352c64e5: NOKEYer

    centos7 yum安装时遇到错误:Header V3 RSA/SHA256 Signature, key ID 352c64e5: NOKEY 无法安装时,可按如下方法解决: This mini ...

随机推荐

  1. iframe 自适应高度、父子页面传值、回调

    总结一下最近用iframe遇到的问题与解决办法: 结构:主页面main.html,里面套用iframe.iframe不能出现滚动条,自适应子页面高度.内容多了滚动条是main.html页面的. 1.  ...

  2. Fiddler--Filters

    本篇主要介绍Fiddler中Filters(过滤器)选项功能. 先看看Filters的界面: 一.模块一 当勾选“Use Filters”,Filters才开始工作:否则Filters中的设置内容将无 ...

  3. 第十九节: 结合【表达式目录树】来封装EF的BaseDal层的方法

    一. 简介 该章节,可以说是一个简单轻松的章节,只要你对Expression表达式树.EF的基本使用.泛型有所了解,那么本章节实质上就是一个非常简单的封装章节,便于我们快捷开发. PS:在该章节对于E ...

  4. [物理学与PDEs]第4章第2节 反应流体力学方程组 2.1 粘性热传导反应流体力学方程组

    1.  记号: $Z=Z(t,{\bf x})$ 表示未燃气体在微团中所占的百分比 ($Z=1$ 表示完全未燃烧; $Z=0$ 表示完全燃烧). 2.  物理化学 (1)  燃烧过程中, 通过化学反应 ...

  5. mac下go环境搭建开发web工程

    1,golang下载: http://www.golangtc.com/download https://golang.org/ https://beego.me/docs/intro/ 2,安装go

  6. RT-SA-2019-007 Code Execution via Insecure Shell Functiongetopt_simple

    Advisory: Code Execution via Insecure Shell Function getopt_simple RedTeam Pentesting discovered tha ...

  7. Android WebView重定向问题的解决方案

    当WebView在加载网页时,有时会有重定向问题,返回键回退怎么也回退不掉,怎么办? WebView有一个getHitTestResult():返回的是一个HitTestResult,一般会根据打开的 ...

  8. GitHub界面初识

      现在很多 HR 在招聘程序员的需求都会提到「有 Github 项目者优先」,大部分求职者也会在简历中附上 Github 链接. 作为一个专业的 HR,即便不懂代码,也不能被一个链接唬住.今天我就手 ...

  9. get/post比较

    转载: https://www.oschina.net/news/77354/http-get-post-different https://www.cnblogs.com/wswang/p/6054 ...

  10. python回归分析五部曲

    Python回归分析五部曲(一)—简单线性回归 https://blog.csdn.net/jacky_zhuyuanlu/article/details/78878405?ref=myread Py ...