最近Sham闲着无事,就想着用公司电脑搭个临时服务器,用于测试什么的,但是问题是公司电脑是没有管理员权限的,无法安装像宝塔面板、PHPStudy啊什么的,于是想着如果一个个手动安装,如果有绿色包,那不就行了?
搜索了一圈 ,终于实现了需求,下面就来完整介绍下,以下都是在无需(没有)管理员权限的前提下操作的3
首先是下载各个软件的安装包、绿色包
Nginx官网下载:http://nginx.org/en/download.html
PHP官网下载:https://windows.php.net/download
MySQL官网下载:https://dev.mysql.com/downloads/installer/
phpMyAdmin官网下载:https://www.phpmyadmin.net/
Sham公司电脑是Win10的,所以下载的都是windows版,其中PHP我下载的是7.3的,因为发现8.0的因为有些变化,导致Sham原来的php代码会报错,其他的随意,Sham都选的最新版
下载完成后,就是解压、解压、解压,没错,解压就行了,然后就能用了,下面是各个软件启用介绍
首先来Nginx
找到conf/nginx.conf,打开编辑(可以考虑先备份一份,防止改残了)
#找到listen 80,将它替换成你自己想要的端口,因为Sham的80端口被占用了,所以改了,比如
listen 1080
#然后因为PHP是用CGI的方式来使用的,所以这个里面还要有如下代码(本来就有,因为使用时发现一些问题,所以按网上的方式改了下)
#下面的D:/shamweb/nginx/html是指网站更目录地址,这个文件里几个root,如果默认不好使的话,可以也改成你自己的根目录地址
#其中127.0.0.1:9000这个,需要和后面php运行时设置的一致
location ~ \.php$ {
root D:/shamweb/nginx/html;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
set $real_script_name $fastcgi_script_name;
if ($real_script_name ~ "^(.+?\.php)(/.+)$") {
set $real_script_name $1;
}
fastcgi_split_path_info ^(.+?\.php)(/.*)$;
fastcgi_param PATH_INFO $fastcgi_path_info;
fastcgi_param SCRIPT_FILENAME D:/shamweb/nginx/html$fastcgi_script_name;
include fastcgi_params;
}
#下面这段是为了支持phpMyAdmin的,这里直接放上,端口号随意,这个是后面访问phpMyAdmin用的
server {
listen 1090;
server_name localhost;
access_log D:/shamweb/phpmyadmin-access.log;
location / {
root D:/shamweb/phpMyAdmin;
index index.php;
}
location ~ \.php$ {
root D:/shamweb/phpMyAdmin;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
set $real_script_name $fastcgi_script_name;
if ($real_script_name ~ "^(.+?\.php)(/.+)$") {
set $real_script_name $1;
}
fastcgi_split_path_info ^(.+?\.php)(/.*)$;
fastcgi_param PATH_INFO $fastcgi_path_info;
fastcgi_param SCRIPT_FILENAME D:/shamweb/phpMyAdmin$fastcgi_script_name;
include fastcgi_params;
}
location ~ /\.ht {
deny all;
}
}
然后保存,这时你运行nginx.exe,然后访问http://127.0.0.1:1080,就发现能看到nginx安装成功的页面啦;
然后是安装PHP
找到php.ini-development,复制一份,并更名为php.ini
打开编辑,修改如下
#将如下3行代码前面的“#”号去掉,去掉注释使他生效
extension_dir = "./"
On windows:
extension_dir = "ext"
#然后因为要用到一些功能,可以提前将如下代码前的#去掉,主要是让它支持mysqli语句,能使用phpMyAdmin
extension=mysqli
extension=openssl
#如果还有用到其他的,请自行选择(可以后面碰到问题的时候再来打开)
然后需要运行php,需要在CMD中运行如下代码,这里的9000就是上面nginx里设置的一致的
D:/shamweb/php7.3/php-cgi.exe -b 127.0.0.1:9000 -c D:/shamweb/php7.3/php.ini
下面是安装Mysql
在bin目录下,新建一个my.ini,里面代码参考如下:
[mysqld]
# 设置3306端口
port=3306
# 设置mysql的安装目录
basedir=D:/shamweb/mysql8
# 设置mysql数据库的数据的存放目录
datadir=D:/shamweb/mysql8/data
# 允许最大连接数
max_connections=200
# 允许连接失败的次数。这是为了防止有人从该主机试图攻击数据库系统
max_connect_errors=10
# 服务端使用的字符集默认为UTF8
character-set-server=utf8
# 创建新表时将使用的默认存储引擎
default-storage-engine=INNODB
#skip-grant-tables
[mysql]
# 设置mysql客户端默认字符集
default-character-set=utf8
[client]
# 设置mysql客户端连接服务端时默认使用的端口
port=3306
default-character-set=utf8
然后进入cmd运行
#首先需要cd 到mysql8/bin,如果默认在C盘的话
D:
cd D:/shamweb/mysql8/bin
#下面这个是用来初始化安装的
mysqld --initialize
#下面这个是用来启动MySQL的
mysqld --console
这里有一点,因为不知道初始密码(如果是安装包的话,安装过程可以看到密码),所以要先让他能无密码访问
打开 my.ini 把 #skip-grant-tables 的 # 去掉,重启服务
然后输入:
mysql -uroot -p
#这样可以无秘进入mysql,可以看到mysql>,然后修改密码
#下面这个是老版的
update mysql.user SET password=password(‘写你的新密码’) where user=‘root’;
#下面这个是MySQL 8.x版的,应该是的, 上面那个不管用时可以用下面这个
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '新密码'
改好密码之后,再回去把skip-grant-tables前面呢#号加上
然后再重启服务,这样基本MySQL就完成了
最后就是安装phpMyAdmin来管理MySQL
找到libraries/config.default.php,打开并编辑
#找到$cfg['Servers'][$i]['user'] ,将=号后面的值设成(默认是root)
$cfg['Servers'][$i]['user'] = 'root';
#找到$cfg['Servers'][$i]['password'],将=号后面的值设成你上面修改的密码
$cfg['Servers'][$i]['password'] = 'xxx';
#找到$cfg['PmaAbsoluteUri'],将=号后面的值设成服务器网址,本机就默认就行
$cfg['PmaAbsoluteUri'] = '127.0.0.1';
#如果只是本地测试的话,将$cfg['Servers'][$i]['auth_type'] = 'cookie';中的cookie改为config
$cfg['Servers'][$i]['auth_type'] = 'config';
至此,就完成了服务器基础套件的安装啦;
当然,问了方便,可以通过做成一个bat文件来1键执行,这里需要用到RunHiddenConsole工具,具体大家可以百度搜索下
start_nginx_php_mysql.bat
@echo off
set php_home=./php7.3
set nginx_home=./nginx
set mysql_home=./mysql8/bin
REM Windows 下无效
REM set PHP_FCGI_CHILDREN=5
REM 每个进程处理的最大请求数,或设置为 Windows 环境变量
set PHP_FCGI_MAX_REQUESTS=1000
echo Starting PHP FastCGI...
RunHiddenConsole %php_home%/php-cgi.exe -b 127.0.0.1:9000 -c %php_home%/php.ini
echo Starting nginx...
RunHiddenConsole %nginx_home%/nginx.exe -p %nginx_home%
echo Starting MySQL...
RunHiddenConsole %mysql_home%/mysqld --console
然后是关闭的(不用的时候一定要关闭,不然一直留在内存中运行)
stop_nginx_php_mysql.bat
@echo off
echo Stopping nginx...
taskkill /F /IM nginx.exe > nul
echo Stopping PHP FastCGI...
taskkill /F /IM php-cgi.exe > nul
echo Stopping MySQL...
taskkill /F /IM mysqld.exe > nul
exit
完事儿,因为是在久经多次失败后才完成的,中间不确定是否有遗漏,大家可以先不用bat,一个个用cmd来执行,这样能看到报错信息,再搜索对应解决方法,一步步实现吧
评论前必须登录!
注册