服务器安装LNMP及构建个人站点
服务器安装LNMP(centos6.6+nginx1.7.12+mysql5.6.24+php5.6.7)
准备工具:2个U盘、以下几个文件 ULtraISO-9.6.2.3059.exe (光盘映像文件制作/编辑/转换工具) centos-6.6-x86-64-minimail.iso (centos6.6的最小化安装ISO) libmcrypt-2.5.8.tar.gz (加密函数源码包) pcre-8.36.tar.gz (pcre语言正则表达式源码包) mysql-5.6.24.tar.gz (mysql源码包) php-5.6.7.tar.gz (php源码包) nginx-1.7.12.tar.gz (nginx源码包) 备注:nginx1.7.12、php5.6.7、mysql5.6.24、libmcrypt2.5.8、pcre8.36为固定版本,其他的编译工具等网络下载安装 |
1、centos-6.6-x86-64-minimail.iso的内容刻录到第1个U盘
客户端插入第1个空U盘,打开UltraISO软件,打开centos-6.6-x86-64-minimail.iso文件,点击”启动”菜单-“写入硬盘映像…”,硬盘驱动器选择U盘,点击” 写入”,完成后拔出 |
2、源码安装包放入到第2个U盘
客户端插入第2个空U盘,拷贝libmcrypt-2.5.8.tar.gz、pcre-8.36.tar.gz、mysql-5.6.24.tar.gz、php-5.6.7.tar.gz、nginx-1.7.12.tar.gz,完成后拔出 |
一、centos6.6安装和配置
1、centos6.6安装
服务器插入第一个U盘
进入BIOS(按F9),设置USB启动为首选,按F10退出 按F1继续进入安装界面,选择”install or upgrade an existing system”,回车 选择”english”语言(避免命令行下面的乱码问题),点OK 选择”us”键盘类型,点OK 选择安装媒体”Hard drive”,点OK 选择安装来源”/dev/sda4”,点OK 点next,安装到哪个设备,选择Basic Storage Devices 点next,安装方式为全新、升级,选择全新”Fresh instalation” 点next,输入网络标识名称”test”,设置网络”configure network” 选择”system eth0”网卡,点edit,勾选”connect automatically” 点”IPv4 settings”,从method中选择manual, 点add设置IP、子网掩码、网关、DNS,点apply,点close 点next,选择时区”上海”,设置密码 |
点next,如何分区,选择”create custom layout” 点create,点create,进入”add partition”对话框页面(以2块硬盘为例子): Mount point:选择/,ext4分区类型,输入size,点OK Mount point:选择/tmp,ext4分区类型,输入size,点OK File systemtype:选择SWAP,输入size,点OK Mount point:选择/var,ext4分区类型,输入size,点OK Mount point:选择/home,ext4分区类型,输入size,点OK Mount point:选择/data,ext4分区类型,size选择”fill to maximum allowable” ,点OK |
最终形成的分区如下表:
第一块硬盘: |
第二块硬盘: |
/系统10G |
/var日志32G |
/usr系统软件 |
/home用户目录8G |
/usr/local第三方软件 |
/data数据文件*G(剩余全部分配) |
/usr/local/src源代码 |
/data/mysql数据库文件 |
/tmp临时文件8G |
/data/website网页文件 |
swap交换分区8G |
|
点next,选择”write changes to disk”,写入磁盘 点”change device”(修改MBR引导),”BIOS drive order”下拉选择第一个硬盘,点OK 点next,等待安装完成 点reboot并且拔出U盘,完成安装 |
2、centos6.6配置
服务器插入第2个U盘
#modprobe usb-storage (如果需要的话)加载usb模块
#fdisk -l 查看磁盘,usb模块是否加载成功
#mkdir /mnt/usb 创建usb目录 #mount /dev/sda4 /mnt/usb 载入U盘(假如U盘是sda4) #cd /mnt/usb 进入/mnt/usb目录 #cp * /usr/local/src 拷贝/mnt/usb目录下所有文件到src目录 |
#umount /mnt/usb (如果需要的话)卸载U盘
#vi /etc/sysconfig/iptables 进入防火墙设置,打开3306、80端口 注意:vi里面有多余空格会报错 对应行下面增加: -A INPUT -m state --state NEW -m tcp -p tcp --dport 3306 -j ACCEPT -A INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT 一般修改远程登录端口22(安全)修改/etc/ssh/sshd_config中Port 22并且重启/etc/init.d/sshd: #service iptables restart 重启防火墙使设置生效 |
#yum -y install wget gcc-c++ ncurses-devel cmake make perl libjpeg-devel libpng-devel openssl-devel libxml2-devel gd-devel libcurl-devel sysstat 安装编译工具 |
#cd /usr/local/src 进入/usr/local/src目录 #tar zxvf libmcrypt-2.5.8.tar.gz 解压libmcrypt-2.5.8.tar.gz #tar zxvf pcre-8.36.tar.gz 解压pcre-8.36.tar.gz #tar zxvf mysql-5.6.24.tar.gz 解压mysql-5.6.24.tar.gz #tar zxvf php-5.6.7.tar.gz 解压php-5.6.7.tar.gz #tar zxvf nginx-1.7.12.tar.gz 解压nginx-1.7.12.tar.gz |
#cd /usr/local/src/pcre-8.36 进入pcre-8.36目录 #./configure 配置软件包 #make 编译软件包 #make install 安装软件包 #cd /usr/local/src/libmcrypt-2.5.8 进入libmcrypt-2.5.8目录 #./configure 配置软件包 #make 编译软件包 #make install 安装软件包 |
二、mysql、nginx、php安装和配置
1、mysql、nginx、php安装
#groupadd mysql 创建用户组mysql #useradd mysql -g mysql 创建用户mysql,并加入到mysql组 #mkdir /usr/local/mysql 创建/usr/local/mysql目录 #mkdir /data/mysql 创建/data/mysql目录 #mkdir /data/mysql/data 创建/data/mysql/data目录 |
#vi /etc/profile 编辑profile ,加入PATH搜索路径 文件最后加入如下2行 PATH=/usr/local/mysql/bin:/usr/local/mysql/lib:$PATH export PATH #source /etc/profile 使配置生效 |
#cd /usr/local/src/mysql-5.6.24 进入mysql-5.6.24目录 #cmake \ -DCMAKE_INSTALL_PREFIX=/usr/local/mysql \ -DMYSQL_UNIX_ADDR=/usr/local/mysql/mysql.sock \ -DDEFAULT_CHARSET=utf8 \ -DWITH_EXTRA_CHARSETS:STRING=utf8,gbk \ -DDEFAULT_COLLATION=utf8_general_ci \ -DWITH_MYISAM_STORAGE_ENGINE=1 \ -DWITH_INNOBASE_STORAGE_ENGINE=1 \ -DWITH_ARCHIVE_STORAGE_ENGINE=1 \ -DWITH_BLACKHOLE_STORAGE_ENGINE=1 \ -DWITH_MEMORY_STORAGE_ENGINE=1 \ -DWITH_READLINE=1 \ -DENABLED_LOCAL_INFILE=1 \ -DMYSQL_DATADIR=/data/mysql/data \ -DMYSQL_USER=mysql \ -DMYSQL_TCP_PORT=3306 #make 编译mysql #make install 安装mysql |
#cd /usr/local/src/nginx-1.7.12 进入nginx1.7.12目录 #./configure --prefix=/usr/local/nginx --user=nginx --group=nginx --with-http_stub_status_module #make 编译nginx #make install 安装nginx |
#cd /usr/local/src/php-5.6.7 进入php5.6.7目录 #./configure \ --with-iconv \ --with-zlib \ --enable-xml \ --disable-rpath \ --enable-safe-mode \ --enable-bcmath \ --enable-shmop \ --enable-sysvsem \ --enable-inline-optimization \ --with-curl \ --with-curlwrappers \ --enable-mbregex \ --enable-mbstring \ --with-mcrypt \ --with-gd \ --enable-gd-native-ttf \ --with-openssl \ --with-mhash \ --enable-pcntl \ --enable-sockets \ --with-xmlrpc \ --enable-soap \ --without-pear \ --enable-sqlite-utf8 \ --enable-ftp \ --with-jpeg-dir \ --with-freetype-dir \ --with-png-dir \ --enable-fpm \ --with-fpm-user=httpd \ --with-fpm-group=httpd \ --with-pdo-mysql \ --with-mysqli \ --with-mcrypt=/usr/local/ \ --enable-opcache=no \ #make 编译php #make install 安装php |
2、mysql配置
#cp /usr/local/mysql/support-files/my-default.cnf /etc/my.cnf 拷贝my-default.cnf到/etc下名为my.cnf #cd /usr/local/mysql 返回上级目录/usr/local/mysql #scripts/mysql_install_db --user=mysql --datadir=/data/mysql/data 初始化数据库 #chown -R mysql:mysql /usr/local/mysql 修改/usr/local/mysql目录权限 #chown -R mysql:mysql /data/mysql/data 修改/data/mysql/data目录权限 |
#cd /usr/local/mysql/support-files 进入/usr/local/mysql/support-files目录 #./mysql.server start 启动mysql服务 #mysql 进入mysql 以下设置mysql远程连接配置 mysql>GRANT ALL PRIVILEGES ON *.* TO root@"%" IDENTIFIED BY "123456"; root是用户名,%代表任意主机,'123456'指定的登录密码 mysql>flush privileges; 重载系统权限 mysql>quit 退出 |
3、php配置
#cp /usr/local/src/php-5.6.7/php.ini-production /usr/local/lib/php.ini 拷贝php.ini-production到/usr/local/lib目录下名为php.ini #cp /usr/local/etc/php-fpm.conf.default /usr/local/etc/php-fpm.conf 拷贝/usr/local/etc/php-fpm.conf.default到/usr/local/etc/目录下名为php-fpm.conf |
#groupadd nginx 创建用户组nginx #useradd nginx -g nginx 创建用户nginx,并加入到nginx组 #mkdir /var/log/php 创建/var/log/php目录 #chmod 666 /var/log/php 设置/var/log/php目录权限 |
#vi /usr/local/lib/php.ini 编辑php.ini,修改时区 时区改为date.timezone="Asia/Shanghai" #vi /usr/local/etc/php-fpm.conf 编辑php-fpm.conf 修改红色部分 error_log=/var/log/php/php-fpm.log . . . user=nginx group=nginx #/usr/local/sbin/php-fpm 开启php服务 |
4、nginx配置
#vi /usr/local/nginx/conf/nginx.conf 编辑nginx.conf 修改80端口为其他 最后 } 上面加入include vhost/*.conf; |
#mkdir /usr/local/nginx/conf/vhost #ln -s /usr/local/lib/libpcre.so.1 /lib64 添加libpcre.so.1这个模块 #/usr/local/nginx/sbin/nginx 开启nginx服务 |
#yum -y update 安装系统补丁 |
三、站点测试
测试前先建立站点路径配置文件 php测试页代码: <?php phpinfo(); ?> |
php/nginx/mysql启动命令: /usr/local/sbin/php-fpm /usr/local/nginx/sbin/nginx /usr/local/mysql/support-files/mysql.server start
nginx -s reload :修改配置后重新加载生效
nginx -s reopen :重新打开日志文件
nginx -t -c /path/to/nginx.conf 测试nginx配置文件是否正确
nginx -s stop :快速停止nginx
quit :完整有序的停止nginx
|
我是用虚拟机搭的环境,做了些其他的操作,仅供参考:
2. 配置nginx 配置,站点路径指向共享文件夹中的某一项目路径
3.实现内网转发,外网可以直接访问站点(使用反向代理服务器,网上找到个第三方的,也可以自己搭个代理服务器,这里使用免费的,魔法隧道,配置比较简单)
魔法隧道地址: http://www.mofasuidao.cn/
4.本地搭建ftp服务,使用魔法隧道对ftp 21端口进行转发(考虑个人电脑安全性暂未实现,即使要实现也必须增加安全性措施,sftp或许更适用)