准备环境
LINUX平台
nginxXXX(nginx源码包版本)
mysqlXXX(mysql源码包版本)
phpXXX(php源码包版本)
编译安装mysql
1.如果是准备独立存放数据最好是单独创建一个分区存放数据文件
fdisk -l 新添加的磁盘
mount /mydata/data (数据存放目录) 新添加的磁盘
2.查看本地安装的环境,如安装mariadb则卸载
3.修改数据目录的权限
chown -R mysql.mysql /mydata/data
4.安装cmake编辑器
yum install -y cmake
5.解压安装包
tar zxf mysqlXXX ---如果想指定目录则加 -C (指定 大小写区分)
cd mysqlXXX
cmake ...(源码要安装的插件)
DCMAKE_INSTALL_PREFIX=/usr/local/mysql ---安装的路径
DMYSQL_UNIX_ADDR=/tmp/mysql.sock ---mysql运行程序启动生成
DDEFAULT_CHARSET=utf8 ---默认字符格式
DDEFAULT_COLLATION=utf8_general_ci ---字符集校验
DMYSQL_DATADIR=/mydata/data ---安装的数据目录
DMYSQL_TCP_PORT=3306 ---安装mysql的TCP端口号
DWITH_BOOST=boost/boost_1_59_0/
DWITH_MYISAM_STORAGE_ENGINE=1 ---默认存储引擎
DWITH_INNOBASE_STORAGE_ENGINE=1 ---innodb存储引擎
DWITH_ARCHIVE_STORAGE_ENGINE=1 ---归档存储引擎
DWITH_BLACKHOLE_STORAGE_ENGINE=1 --黑洞存储引擎
可能出现的问题
【
1.
CMake Error: your C compiler: "CMAKE_C_COMPILER-NOTFOUND" was not found. Please set CMAKE_C_COMPILER to a valid compiler path or name.
解决方法
yum groupinstall -y "Development Tools" "Server Platform Development" "Desktop Platform Development" ----------开发工具、服务器平台开发、桌面平台开发
2.
CMake Error at cmake/readline.cmake:64 (MESSAGE):
Curses library not found. Please install appropriate package, ---如果找不到安装包可以拿 yum provides “查找能生成某个命令的安装包”
解决方法
yum install -y ncurses-devel.x86_64
】
6.编译与安装
make
make install
7.修改mysql安装目录权限
chown -R mysql.mysql /usr/local/mysql
8.初始化数据库
/usr/local/mysql/bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/mydata/data ---指定用户、指定用户的安装目指定用户的数据存放目录
9.复制mysql配置文件
cd /usr/local/mysql/support-files/
cp my-default.cnf /etc/my.cnf
vim /etc/my.cnf ---注意大括号里的要写入/etc/my.cnf
{ [mysqld]
basedir=/usr/local/mysql #安装目录
datadir=/mydata/data #数据存放目录
port=3306 #生成的端口
server_id=XXX #当前服务器ip
socket=/tmp/mysql.sock #服务器启动生成sock文件
}
10.启动mysql服务
/usr/local/mysql/bin/mysqld_safe --user=mysql & ---&是指把前台的程序放到后台执行
ss -an | grep 3306 ---过滤端口 如果有则是启动成功
11.如果为了方便可以修改环境变量
cat /etc/profile.d/mysql.sh ---可以在/etc/profile.d/下生成任何文件以.sh结尾 系统会自动读取
export PATH=$PATH:/usr/local/mysql/bin
12.source /etc/profile.d/mysql.sh ---手动读取环境变量文件
13.修改mysql 登录root密码
mysql -u root -p
ALTER USER 'root'@'localhost' IDENTIFIED BY '密码'; ---修改用户的密码
FLUSH PRIVILEGES; ---刷新授权
14.设置源码开机自启动
vim /etc/rc.d/rc.local ---开机以后系统会自动读取该文件
/usr/local/mysql/bin/mysqld_safe --user=mysql &
编译安装nginx
1安装gcc开发包
yum install -y gcc*
2.添加nginx用户
useradd nginx
3.创建nginx需要的用户
mkdir -p /var/tmp/nginx/{client,proxy,fastcgi,uwsgi,scgi} ---创建需要的用户 -p 级联
4.解压文件
tar zxf nginx-1.11.10.tar.gz
5.切换目录
cd nginx-1.11.10/
6.编译文件
./configure
prefix=/usr/local/nginx ---安装路径
user=nginx --用户
group=nginx ---组
with-http_ssl_module ---ssl模块
with-http_flv_module --flv模块
with-http_stub_status_module ---stub模块
with-http_gzip_static_module ---gzip模块
http-client-body-temp-path=/var/tmp/nginx/client --需要的用户组件
http-proxy-temp-path=/var/tmp/nginx/proxy \
http-fastcgi-temp-path=/var/tmp/nginx/fastcgi \
http-uwsgi-temp-path=/var/tmp/nginx/uwsgi \
http -scgi-temp-path=/var/tmp/nginx/scgi \
with-pcre \
with-file-aio \
with-http_secure_link_module ---连接模块
容易遇到的问题
1./configure: error: the HTTP rewrite module requires the PCRE library.
解决方法:yum install -y pcre-devel
2./configure: error: SSL modules require the OpenSSL library.
解决方法:yum install -y openssl-devel
7.编译组建
make && make install
编译安装php
1.安装必要的软件依赖包
yum localinstall -y --nogpgcheck libmcrypt-2.5.8-9.el6.x86_64.rpm libmcrypt-devel-2.5.8-9.el6.x86_64.rpm mcrypt-2.6.8-10.el6.x86_64.rpm mhash-devel-0.9.9.9-3.el6.x86_64.rpm mhash-0.9.9.9-3.el6.x86_64.rpm
2.安装用到的devel
yum install -y libxml2-devel bzip2-devel
3.解压安装包
tar xzf php-5.6.27.tar.gz
4.切换目录
cd php-5.6.27
5.开始配置
./configure
prefix=/usr/local/php --安装php的路径
with-mysql=/usr/local/mysql ---mysql的文件
with-openssl ---连接openssl
with-mysqli=/usr/local/mysql/bin/mysql_config --连接mysql配置文件
enable-mbstring
with-freetype-dir ---内存类型目录
with-jpeg-dir ---jpeg存放目录
with-png-dir ---png存放目录
with-zlib
with-libxml-dir=/usr ---libxml存放路径
enable-xml ---xml文件
enable-sockets ---套接字
enable-fpm ---fpm文件
with-mcrypt ---mcrypt模块
with-config-file-path=/etc ---配置文件路径
with-config-file-scan-dir=/etc/php.d ---配置文件目录
with-bz2 ---bz2模块
6.编译组建
make && make install
7.复制php的配置文件
cp php.ini-production /etc/php.ini
8.复制php-fpm的配置文件
cd /usr/local/php/etc/
cp php-fpm.conf.default php-fpm.conf
9.复制php-fpm的启动脚本
cp init.d.php-fpm /etc/init.d/php-fpm
chmod a+x /etc/init.d/php-fpm
chkconfig --add php-fpm
chkconfig --list php-fpm
php-fpm 0:关闭 1:关闭 2:启用 3:启用 4:启用 5:启用 6:关闭
10.编辑/usr/local/php/etc/php-fpm.conf配置文件
# vim /usr/local/php/etc/php-fpm.conf
pm.max_children = 150
pm.start_servers = 8
pm.min_spare_servers = 8
pm.max_spare_servers = 10
pid=/usr/local/php/var/run/php-fpm.pid
user=nginx
group=nginx
11.文件启动
/etc/init.d/php-fpm start
Starting php-fpm done
# netstat -tnlp | grep php-fpm
tcp 0 0 127.0.0.1:9000 0.0.0.0:* LISTEN 15457/php-fpm
12.整合nginx和php
编辑nginx配置文件,去掉如下配置的注释:
location ~ \.php$ {
root /web/htdocs;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_script_name;
include fastcgi_params;
}
13.编辑/usr/local/nginx/conf/fastcgi_params文件,并将内容修改为如下内容,配置fastcgi参数:
fastcgi_param GATEWAY_INTERFACE CGI/1.1;
fastcgi_param SERVER_SOFTWARE nginx;
fastcgi_param QUERY_STRING $query_string;
fastcgi_param REQUEST_METHOD $request_method;
fastcgi_param CONTENT_TYPE $content_type;
fastcgi_param CONTENT_LENGTH $content_length;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param SCRIPT_NAME $fastcgi_script_name;
fastcgi_param REQUEST_URI $request_uri;
fastcgi_param DOCUMENT_URI $document_uri;
fastcgi_param DOCUMENT_ROOT $document_root;
fastcgi_param SERVER_PROTOCOL $server_protocol;
fastcgi_param REMOTE_ADDR $remote_addr;
fastcgi_param REMOTE_PORT $remote_port;
fastcgi_param SERVER_ADDR $server_addr;
fastcgi_param SERVER_PORT $server_port;
fastcgi_param SERVER_NAME $server_name;
14.编辑nginx配置文件,指定php首页
location / {
root html;
index index.php index.html index.htm;
}