之所以写零基础是因为自己确实从零开始摸索、踩坑,严格意义上来说仅仅作为记录自己操作流程的一个笔记,并没有拔高到教程程度。
XAMPP一般用作开发环境,或供学习之用;在Windows系统下使用比较简单,且网上教程很多,而Linux下的教程则很少或不全;这里只记录全新安装虚拟机Linux系统下的建站步骤,且不涉及前端代码与PHP方面。
用到的软件:
1)VMware workstation 12.0.0;
2)CentOS 6.4 镜像;
3)XAMPP for Linux;
4)XShell 4;
5)EMS SQL Manager。
操作步骤:
一、虚拟机Linux安装
1.VMware安装略过,无难度。
2.打开VMware->创建新的虚拟机->选择“典型”,下一步->选择“稍后安装操作系统”,下一步->选择“Linux”以及版本“CentOS 6.4”,下一步->选择安装路径,下一步 ->选择磁盘大小以及“拆分成多个文件”,下一步->选择“自定义硬件”,在弹窗里,将网络默认的NAT改为桥接,磁盘选择准备好的ISO镜像路径,关闭弹窗,点击完成。
3.在VMware标题栏选项卡选择“编辑”->“虚拟网络编辑器”->弹窗选择“更改设置”;此时VMnet0对应的VMnet信息框中,桥接模式的选择框中的值为“自动”,改为你的网卡->确定。
4.启动虚拟机,安装CentOS;安装过程中默认为Minimal安装,若第一次接触,可选择Desktop。
注:本文所有相关IP或网络的设定是基于局域网内虚拟机的情况,若有公网IP另当别论。
二、基础配置
1.之前网络选择的是桥接模式,即虚拟机与实体机同处一个网段,在终端中输入:
ifconfig
可查看IP,默认为自动获取,可以手动设置为固定值,在终端中输入:
vi /etc/sysconfig/network-scripts/ifcfg-eth0
将BOOTPROTO等号右边的值改为static,继续添加:
DNS1=192.168.1.1 #注:根 据实际情况,比如你的实体机IP为192.168.1.159,则DNS为 192.168.1.1 IPADDR=192.168.1.155 #注:自己指定的IP地址,与实体机IP在同一网段 NETMASK=255.255.255.0 #注:子网掩码 GATEWAY=192.168.1.1 #注:同上,网关
保存关闭文件,重启查看是否生效。
2.若发现网络没有自动连接,仍旧打开1中的文件,修改ONBOOT的值为yes即可。
3.配置防火墙,开启80与3306端口,前者为web服务所用,后者为数据库所用;终端输入:
vi /etc/sysconfig/iptables
在-A INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT这条规则之后添加:
-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端口通过防火墙
保存关闭文件(注:若添加在配置文件最末尾会出错),终端输入:
/etc/init.d/iptables restart
重启防火墙使配置生效。
三、XAMPP安装与基础配置
1.在此之前先安装好XShell;点击新建建立SSH连接,主机为虚拟机IP地址;连接成功后,作基础设定,“文件”->“属性”->“终端”->“编码”->选择utf-8,若字号太小也可自行调大。
2.Ctrl+Alt+F打开文件传输窗口,将下好的XAMPP安装包上传,比如上传至/tmp文件夹。
3.进入tmp文件夹:
cd /tmp chmod 777 xampp-linux-x64-1.8.3-5-installer.run #注:输入头几个字母,按Tab自动补全 ./xampp-linux-x64-1.8.3-5-installer.run
按提示安装完成,此时输入:
/opt/lampp/lampp start
可开启服务器。
4.在实体机的浏览器中,进入192.168.1.155/phpmyadmin会提示403错误,这是因为默认状态下只能在本地打开此网页,此时在XShell输入:
vi /opt/lampp/etc/extra/httpd-xampp.conf
找到"/opt/lampp/phpmyadmin">,将其对应的Require local改为
Require all granted
保存关闭文件(注:修改方式根据版本不同,有的老版直接将LocationMatch标签下的Require local注释掉即可,但新版会直接导致报错,因此首先尝试如此修改),输入:
/opt/lampp/lampp restart
重启服务器。
5.如无意外192.168.1.155/phpmyadmin已经可以在实体机中正常访问,为今后使用方便,将XAMPP设定为随系统启动,输入:
egrep :initdefault: /etc/inittab #注:正则匹配,在/etc/inittab文件中查找形如:initdefault:的代码段
若安装系统时选择了Desktop,则搜索结果应为id:5:initdefault:;若想更改启动方式为命令行启动,可以进入/etc/inittab将id:5:initdefault:修改为id:3:initdefault:;此处假定已经改为3,输入:
cd /etc/rc.d/rc3.d #注:若未改为3,将rc3写为rc5即可 ln -s /opt/lampp/lampp S99lampp #注:此句添加XAMPP进入启动项
若想取消开机启动,S99lampp改为K01lampp即可。
6.开发页面时,只需将项目文件夹放入/opt/lampp/htdocs,比如项目文件夹test,入口页为index.html,那么在实体机中输入192.168.1.155/test/index.html即可访问。
另:涉及日志保存时,记得给日志文件夹添加写入权限;如将日志文件夹命名为Log,放在/opt/lampp下,进入目录,输入:
chmod -R a+w Log
即可。
四、MySQL基础配置
1.首先设定密码,输入:
/opt/lampp/bin/mysql -uroot -p
回车,默认无密码,再次按回车进入数据库,输入:
show databases;
可查看现有数据库,如登录数据库的用户信息就存在mysql数据库下的user表当中,输入:
use mysql;
选择数据库,输入:
select * from user;
可查看user表下的用户信息,可以发现root用户对应的密码均为空,输入:
update user set password=password(‘yourpassword‘) where user=‘root‘;
即可将用户名为root的用户密码均改为你设定的密码,注意一定要使用password(‘‘)。
2.此时还不用退出数据库,输入:
delete from user where user=‘‘;
删除匿名用户;若没有这一步,进行下一步之后,会出现数据库访问频频报错的情况;此时设定好密码的root用户无法正常登录,用匿名用户可以登录(其实是默认匹配到了匿名用户登录),却找不到mysql数据库(没有权限),因此统一删除匿名用户。
若没有删除,且数据库已经无法访问,提示“ERROR 1045 (28000): Access denied …”可以尝试用语句
/opt/lampp/bin/mysql -h 192.168.1.155 -u root -p
来登录,再对数据库进行修改。
3.接着,输入:
update user set host=‘%‘ where user=‘root‘ and host=‘localhost‘;
设定root用户可以远程访问,最后输入:
flush privileges;
退出数据库。
4.此时会发现192.168.1.155/phpmyadmin无法访问了,输入:
vi /opt/lampp/phpmyadmin/config.inc.php
找到$cfg[‘Servers‘][$i][‘password‘] = ‘‘;将刚才设定的密码填入‘‘中,保存关闭文件,输入:
/opt/lampp/lampp restart
重启服务器,192.168.1.155/phpmyadmin访问正常。
5.到这里数据库还不能正常使用,因为默认的编码格式并非utf8,此时添加数据库信息会导致中文乱码,登录数据库,输入:
show variables like ‘%char%‘;
可查看当前编码格式,发现character_set_database和character_set_server对应的值为latin1,输入:
set character_set_database=utf8; set character_set_server=utf8;
可在本次登录中将编码格式改为utf8,即退出数据库后失效;若想保存为默认设定,输入:
vi /opt/lampp/etc/my.cnf
在[client]和[mysql]下添加:
default-character-set = utf8
在[mysqld]下添加:
character-set-server = utf8
保存关闭文件,重启服务器,此时数据库编码设定完毕。
五、MySQL基本操作
1.在第四步当中,XAMPP自带的数据库管理工具已经可以使用,浏览器进入192.168.1.155/phpmyadmin即可。关于phpmyadmin的操作不谈,这里以EMS SQL Manager为例。
2.安装好软件后,打开“Database”选项卡->“Register Host”->填写基本信息后下一步->选择具体的database到右侧框内->完成。
3.顺利的话左边栏将显示你的主机IP,点击加号可展开主机下你所添加的database,双击连接,第一个子项tables即为此database下的表单。
4.右键tables可新建表单,在右侧的选项卡中,properties可设定表单名及存储引擎;fields可编辑表单结构,添加字段;data可添加或修改表单数据;所有操作都要记得点compile保存更改。
5.按F12,可以直接运行SQL语句。
六、XAMPP安全与优化配置
1.若作为生产环境,还需进行进一步设置,输入:
vi /opt/lampp/etc/httpd.conf
找到"/opt/lampp/htdocs">,添加或修改为:
Options FollowSymLinks AllowOverride None
意在使htdocs下的目录对外不可访问。
2.修改PHP报错等级,输入:
vi /opt/lampp/etc/php.ini
利用“/”全文搜索关键字,改为:
error_reporting = E_ALL & ~E_DEPRECATED display_errors=Off display_startup_errors=Off
3.关闭FTP服务,输入:
/opt/lampp/lampp stopftp
即可,下次重启服务器时将不会启动FTP服务。
4.之前开发的时候允许phpmyadmin的远程访问,这里记得关闭,将/opt/lampp/etc/extra/httpd-xampp.conf文件修改为原样即可。
5.修改MySQL高并发优化配置(myisam为例),输入:
vi /opt/lampp/etc/my.cnf
其中:
key_buffer = 16M 修改为 key_buffer_size = 32M max_allowed_packet = 1M 修改为 max_allowed_packet = 32M read_buffer_size = 256K 修改为 read_buffer_size = 4M 添加 max_connections = 3000
设置项根据实际需求修改。
(本文结束)