前言
罐头做了决定,从MC
离职了。犹豫和纠结了好些日子之后,接受了37
的offer。来了才知道,我是开荒者啊,没有PHP开发人员,也没有PHP相关环境的服务器。所以入职第一天,我要从零开始构建PHP应用。这整一个过程真的好辛苦,以致我第一天上班就工作到23点。不禁让我想起了以前入职MC
,第一周和小伙伴编译LFS,编译到凌晨才下班,大冬天在寒夜里追公交的场景……
知识准备
为了可以更好理解整个流程,这里提前介绍一些基础知识和软件准备:
- VMware Workstation12
虚拟机软件,用来挂载Linux - CentOS-6.3-x86_64-minimal.iso
这里选择发行版是无桌面的CentOS - SecureCRT
支持SSH的终端仿真程序,Windows下登录UNIX或Linux服务器主机的软件。 - SSH
为 Secure Shell 的缩写,专为远程登录会话和其他网络服务提供安全性的协议。通过配置公钥/私钥可以登录到linux。 - LNMP(快速安装PHP方案)
LNMP = linux + nginx + mysql + php
基本流程
- 安装VMware Workstation12(下面简称VM)
- 在VM创建新的虚拟机,挂载CentOS
- 配置VM网络模式,让CentOS可以上网
- 生成公钥/私钥。配置并使用SecureCRT(下面简称CRT)
- 通过CRT安装LNMP
安装VM
- 这里使用的最新的版本 VMware Workstation12,直接使用了百度提供的安装链接下载:
- 传送门:http://sw.bos.baidu.com/sw-search-sp/software/d34ff7ffac8/VMware-workstation_full_12.1.1.6932.exe
- 安装过程,就不絮叨了,就是平常安装window软件的安装流程。
- 安装完成之后,需要序列号激活,就去网上找一下注册机或者搜索一下序列号即可解决。
这里提供一个 VMware Workstation 12序列号:
5A02H-AU243-TZJ49-GTC7K-3C61N
安装CentOS
- 前面说了CentOS是linux的一个发行版,如果对其他的发行版有兴趣的同学可以私聊。
- 可以到官网下载一个镜像包,我这里的
组长-君哥
给了我一个,这是我唯一感到安慰的时刻了。 - 官网地址 https://www.centos.org/ ,搜索CentOS-6.3-x86_64-minimal.iso
- 这里细说一下如何安装CentOS
- 创建新的虚拟机
- 自定义
- Workstation 12.0
- 创建的虚拟机将包含一个空白硬盘
- linux centos 64
- 虚拟机命名和位置
- 自定义硬件(主要注意一下内存大小和网络,不懂的同学可以使用默认推荐设置)
- 建立虚拟机之后再选择ISO路径,然后开始安装。
- 系统盘成功引导后,出现下面的界面(到这里算成功一半了,继续加油)
- 选择Install or upgrade an existing system 安装或升级现有的系统
- 出现是否对CD媒体进行测试的提问,这里选择“Skip”跳过测试。
- 选择语言 中文(简体)、美国英语式
- 键盘模式,默认即可
- 是,丢弃所有数据
- 时区选择,取消“系统时钟使用UTC时间”前面的勾
- 设置root密码
- 选择最后一项,自定义分区。这里说一下如何分区
假如硬盘总共5G
系统文件类型:swap 大小(M):1024
挂载点:/ 文件系统类型:ext4 选中“使用全部可用空间”
点格式化,将修改写入磁盘 - 进入安装,安装完毕请重启(到这里算完成)
- 我这里没有截太多的图,图文参考传送门:http://www.dedecms.com/knowledge/servers/linux-bsd/2012/0819/8398.html
VM的网络配置
准备
VMWare提供了三种工作模式,它们是bridged(桥接模式)、NAT(网络地址转换模式)和host-only(主机模式)。以后有空再给大家详细分析这三种模式的差异。我们这使用NAT模式,下面简单介绍一下NAT模式。
使用NAT模式,就是让虚拟系统借助NAT(网络地址转换)功能,通过宿主机器所在的网络来访问公网。也就是说,使用NAT模式可以实现在虚拟系统里访问互联网。NAT模式下的虚拟系统的TCP/IP配置信息是由VMnet8(NAT)虚拟网络的DHCP服务器提供的,无法进行手工修改,因此虚拟系统也就无法和本局域网中的其他真实主机进行通讯。采用NAT模式最大的优势是虚拟系统接入互联网非常简单,你不需要进行任何其他的配置,只需要宿主机器能访问互联网即可。下面说一下配置流程:
- 右击选择已创建好的虚拟机,选择设置,弹窗之后选择网络设配器
- 在窗口右侧选择
使用NAT 模式(N):用于共享主机的IP地址
- 开启宿主机(windows10)中的VMware DHCP Service 和VMware NAT Service服务。(我的计算机->管理->服务)
- 先把虚拟机关闭了 > 编辑 > 虚拟网络编辑器
- win10貌似要点击以下按钮,获得管理员权限
- 选中
VMnet8 NAT模式
,然后选中NAT模式(与虚拟机共享主机IP地址)
,勾上将主机虚拟适配器连接到此网络
和使用本地DHCP服务将IP地址分配给虚拟机
。
你可以自定义子网ip,也可以通过点击还原默认配置
自动获得子网IP,我这里以192.168.124.0
为例子 - DHCP设置:
- NAT设置,记下这里的
子网IP
,子网掩码
,网关IP(G)
。配置ifcfg-eth0时会用到 - 手工配置ip,直接编辑 vi /etc/sysconfig/network-scripts/ifcfg-eth0
ifcfg-eth0 文件内容如下:
BOOTPROTO 设置为dhcp,
IPADDR 设置为上面NET设置里记下来的子网IP
NETMASK (同上)子网掩码
GATEWAY (同上)网关IP(G)
然后service network restart
再ping 下寄主机的IP试试 是不是通了呢。
配置把虚拟机的端口映射成宿主机端口,那么就可以在同一局域网网内可访问了。
- 同理弹出虚拟网络编辑器(参考上面的)-> 选中
VMnet8 NAT模式
->点击NAT设置 - 配置一个端口转发(没有点击添加,已有可以点击属性)
- 主要配置 [主机端口] [虚拟机端口] [虚拟机IP地址]
- 同理弹出虚拟网络编辑器(参考上面的)-> 选中
配置并使用CRT
- 准备
能使用上CRT的前提,是网络互通,依赖于上一步的配置。除此之外我们还需要:- 在CentOS安装
SSH
服务,并启动它 - ssh-keygen生产SSH 公钥(装个git,在gitbash下使用,或者用svn也可以)
- 最后当然就是安装好CRT(也有非安装版本)
- 在CentOS安装
- 安装SSH,我们直接使用yum安装吧,不需理会依赖问题。
- yum install ssh
- 安装成功,启动SSH:
service sshd start - 设置开机运行:
chkconfig sshd on
注:一般默认CentOS已经安装了OpenSSH,即使你是最小化安装也是如此。 - 修改vi /etc/ssh/sshd_config
Port 22 指定SSH连接的端口号,安全方面不建议使用默认22端口(个人习惯是61618) - 修改vi /root/.ssh/authrized.keys
把SSH公钥id_rsa.pub输入到该文件最后 - CentOS防火墙的关闭,关闭其服务即可:
查看CentOS防火墙信息:/etc/init.d/iptables status
关闭CentOS防火墙服务:/etc/init.d/iptables stop - 尝试看看能不能使用CRT连上?
成功的话就可以愉快地安装LNMP了。
安装LNMP
- 准备
我新装的CentOS连Wegt都没有啊,所以我们需要- yum -y install wget
- 下载一个LNMP1.3包,wget https://api.sinas3.com/v1/SAE_lnmp/soft/lnmp1.3-full.tar.gz –no-check-certificate
(包也是颇大的,400多M,下载需要耗时30min左右)
- 开始安装
- 解压进入安装
tar zxf lnmp1.3-full.tar.gz && cd lnmp1.3-full && ./install.sh lnmp - 按要求选择安装
输入数据库密码->选择mysql版本(MySQL 5.5.48)->选择PHP版本(PHP 5.6.22)->选择缓存工具(Don’t install Memory Allocator.)我们暂时不安装缓存工具->回车开始安装
安装时间可能会几十分钟到几个小时不等,主要是机器的配置网速等原因会造成影响。(请耐心等候,本人装了2个小时) - 安装完成
如果显示Nginx: OK,MySQL: OK,PHP: OK
并且Nginx、MySQL、PHP都是running,80和3306端口都存在,并提示Install lnmp V1.3 completed! enjoy it.的话,说明已经安装成功。
- 解压进入安装
补充
基本上按照以上安装步骤,不会有太大问题,都是傻瓜式安装。新安装的CentOS可能会缺比较多的软件,这里建议使用yum安装一下。下面再补充一下关于Linux的一些常用配置。以便日后需要。
把一些常用的脚本放置root(主要包含php启动、nginx重启等)
chmod +x * 增加一下执行权限(这样就可以愉快的使用了)PHP配置
PHP配置文件:/usr/local/php/etc/php.ini
我们要开启php的错误日志
display_errors = On
html_errors = On
error_log = /data/logs/php_errors.log(日志目录按自己习惯)
设置完毕之后,重启一下PHP令其生效(~/fastcgi_restart )
php-fpm配置文件:/usr/local/php/etc/php-fpm.conf
listen = /tmp/php-cgi.sockNginx配置
Nginx主配置(默认虚拟主机)文件:/usr/local/nginx/conf/nginx.conf
添加的虚拟主机配置文件:/usr/local/nginx/conf/vhost/域名.confMysql配置
MySQL配置文件:/etc/my.cnf设置 命令别名~/.bashrc 和 开机脚本/etc/rc.local
[localhost]# vi ~/.bashrc
--------- 增加两句(个人习惯把mysql密码设置到某个目录,比如/data/pw/mysql_root,避免忘记)----
alias vi='vim'
alias con_mysql='mysql -uroot -p`cat /data/pw/mysql_root`'
[localhost]#vi /etc/rc.local
---------------------------------------------------------------------------------------------
[localhost]# source ~/.bashrc
[localhost]# vi /etc/rc.local
--------- 由于是用vm装的虚拟机,当关机/重启时希望不用手动启动/关闭某些服务--------
/etc/init.d/iptables stop
~/nginx_reload
~/mysql_start
~/fastcgi_start
---------------------------------------------------------------------------------------------