说明:我安装后的版本号分别是:
apache : Apache/2.4.6 (CentOS)
mysql:5.6.42php:5.6.39
一、配置网络。
我们首先需要让我们的虚拟机能够连接上外网,这样才能方便我们使用yum进行安装。
1、如果只是自己开发用的话,最简洁的配置,我们只需要配置一个IP和网关就可以了(根据自己的实际情况)
vim /etc/sysconfig/network-scripts/ifcfg-ens33
DEVICE=ens33IPADDR=192.168.1.101GATEWAY=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.service2、安装iptables
yum install iptables-services
#编辑防火墙配置文件vim /etc/sysconfig/iptables
加入红色的两行代码,请注意位置一定要对应。
1 # sample configuration for iptables service2 # you can edit this manually or use system-config-firewall3 # please do not ask us to add additional ports/services to this default configuration4 *filter5 :INPUT ACCEPT [0:0]6 :FORWARD ACCEPT [0:0]7 :OUTPUT ACCEPT [0:0]8 -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT9 -A INPUT -p icmp -j ACCEPT10 -A INPUT -i lo -j ACCEPT11 -A INPUT -p tcp -m state --state NEW -m tcp --dport 22 -j ACCEPT12 -A INPUT -p tcp -m state --state NEW -m tcp --dport 80 -j ACCEPT13 -A INPUT -p tcp -m state --state NEW -m tcp --dport 3306 -j ACCEPT14 -A INPUT -j REJECT --reject-with icmp-host-prohibited15 -A FORWARD -j REJECT --reject-with icmp-host-prohibited16 COMMIT
3、最后重启防火墙使配置生效
systemctl restart iptables.service
#设置防火墙开机启动systemctl enable iptables.service4、关闭selinux
#修改配置文件vi /etc/selinux/config1 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=enforcing8 SELINUX=disabled9 # 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 //启动apachesystemctl stop httpd.service //停止apachesystemctl restart httpd.service //重启apachesystemctl enable httpd.service //设置apache开机启动systemctl restart httpd.service //重启服务
输入 192.168.1.101 出现如下界面,就代表apache安装成功。
拓展:如何查看apache配置文件 httpd.conf 的路径
我们只需要执行 httpd -V 就可以了,输出如下:
其中HTTPD_ROOT和SERVER_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 //索引文件//规定网站根目录的位置 AllowOverride All # Allow open access: Require all granted ErrorLog logs/error_log //错误日志CustomLog logs/access_log combined //访问日志AddDefaultCharset UTF-8 //默认字符集IncludeOptional conf.d/ *.conf //包含了 conf.d/*.conf 的配置文件DirectoryIndex index.html //默认索引
4、配置多个站点
在配置文件中 /etc/httpd/conf.d/ 下创建一个配置文件,我们新建一个 port.conf 文件(*.conf都可被自动包含进来,名字可以自己取),然后加入下面几行:
Listen 8080DocumentRoot /var/www/html/web1 DocumentRoot /var/www/html/web2
注:
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.soLoadModule auth_digest_module modules/mod_auth_digest.soLoadModule authn_file_module modules/mod_authn_file.soLoadModule authn_alias_module modules/mod_authn_alias.soLoadModule authn_anon_module modules/mod_authn_anon.soLoadModule authn_dbm_module modules/mod_authn_dbm.soLoadModule authn_default_module modules/mod_authn_default.soLoadModule authz_host_module modules/mod_authz_host.soLoadModule authz_user_module modules/mod_authz_user.soLoadModule authz_owner_module modules/mod_authz_owner.soLoadModule authz_groupfile_module modules/mod_authz_groupfile.soLoadModule authz_dbm_module modules/mod_authz_dbm.soLoadModule authz_default_module modules/mod_authz_default.soLoadModule ldap_module modules/mod_ldap.soLoadModule authnz_ldap_module modules/mod_authnz_ldap.soLoadModule include_module modules/mod_include.soLoadModule log_config_module modules/mod_log_config.soLoadModule logio_module modules/mod_logio.soLoadModule env_module modules/mod_env.soLoadModule ext_filter_module modules/mod_ext_filter.soLoadModule mime_magic_module modules/mod_mime_magic.soLoadModule expires_module modules/mod_expires.soLoadModule deflate_module modules/mod_deflate.soLoadModule headers_module modules/mod_headers.soLoadModule usertrack_module modules/mod_usertrack.soLoadModule setenvif_module modules/mod_setenvif.soLoadModule mime_module modules/mod_mime.soLoadModule dav_module modules/mod_dav.soLoadModule status_module modules/mod_status.soLoadModule autoindex_module modules/mod_autoindex.soLoadModule info_module modules/mod_info.soLoadModule dav_fs_module modules/mod_dav_fs.soLoadModule vhost_alias_module modules/mod_vhost_alias.soLoadModule negotiation_module modules/mod_negotiation.soLoadModule dir_module modules/mod_dir.soLoadModule actions_module modules/mod_actions.soLoadModule speling_module modules/mod_speling.soLoadModule userdir_module modules/mod_userdir.soLoadModule alias_module modules/mod_alias.soLoadModule substitute_module modules/mod_substitute.soLoadModule rewrite_module modules/mod_rewrite.soLoadModule proxy_module modules/mod_proxy.soLoadModule proxy_balancer_module modules/mod_proxy_balancer.soLoadModule proxy_ftp_module modules/mod_proxy_ftp.soLoadModule proxy_http_module modules/mod_proxy_http.soLoadModule proxy_ajp_module modules/mod_proxy_ajp.soLoadModule proxy_connect_module modules/mod_proxy_connect.soLoadModule cache_module modules/mod_cache.soLoadModule suexec_module modules/mod_suexec.soLoadModule disk_cache_module modules/mod_disk_cache.soLoadModule cgi_module modules/mod_cgi.soLoadModule 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 等服务器相关程序的时候就非常方便了,相关内容可以参考
//使用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 = usermap to guest =Bad User#登录时需要输入密码encrypt passwords=yessmb password file=/etc/samba/smbpasswd[carroll]//共享的路径path = /var/www/html/writeable = yes #指定该共享是否可以浏览browseable = yes guest ok = yes #验证的账号,这个账号需要提前使用smbpasswd -a carrollvalid users=carroll
5、检查配置文件是否有异常,重启samba
testparm // 如果有异常,可以根据提示去排错
service smb restart
6、将我们的共享目录的用户组和权限更改为samba管理账号
chown -R carroll.carroll /var/www/htmlchmod -R 777 /var/www/html7、最好我们还需要关闭防火墙或者设定相应的过滤规则才能正常访问
service iptables stop
然后我们在客户端就可以连接了
八、.htaccess 文件
Options +FollowSymlinks RewriteEngine On RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_FILENAME} !-f RewriteRule ^(.*)$ index.php/$1 [QSA,PT,L]
如果是windows 下的 phpstudy 搭建的环境,上面的配置如果无效,可以试一下如下配置:
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
参考了博友的博客:
感谢他们!
本文为袋鼠同学(Chrdai)工作中的总结,如有转载,请注明出处: