网站搭建上跟搭asp程序是一样的,php程序需要在iis上配置一些其他的东西。
1.首先下载一个php5.25,下载后解压安装,注意安装路径最好不要有中文或者括号,因为这样程序可能
会找不到路径。打开iis,点击处理程序映射在里面配置参数如下图:
2.下载mysql和mysql的可视化工具 在php程序中找到 common.inc.php 文件,配置里面数据库连接的参数。
php.ini这个文件可能会出错,到时更改这条数据extension_dir = "D:\php5.25\php-5.2.5\ext" 让extension_dir的路径指向ext文件夹即可。
我们一般常规的在Linux服务器中配置WEB系统会用到哪种WEB引擎呢?Apache还是比较常用的引擎之一。所以,我们在服务器中配置LAMP(Linux, Apache, MySQL, PHP)是我们常用的WEB环境。对于大部分同学来说,我们会选择采用WEB面板或者是一键包安装,但是一键包或者面板也是有一些缺陷的,比如有些软件我们并不需要安装。
或者说,对于我们深入学习Linux系统的用户来说,肯定是需要一步步编译安装,这样才知道其中的原理。在这篇文章中,我们将在CentOS6系统中(CentOS7感觉不适特别好用)编译部署LAMP。如果我们觉得有需要的可以参考。如果我们真用于生产环境的,建议对于脚本操作比较熟悉的再使用。
第一、升级最新源
yum update -y
我们在拿到Linux服务器之后可以安装CentOS系统,这里我安装的是CentOS6版本,建议64位系统。如果我们有必要的话也可以修改别名,如果不修改也没事。
第二、Apache引擎部署
1、安装Apache2
yum install httpd -y
2、修改配置文件(/etc/httpd/conf/httpd.conf)
这里我们需要根据服务器的配置进行简单的参数修改。这里我使用的是2GB内存的,所以如下:
KeepAlive Off
...
<IfModule prefork.c>
StartServers 4
MinSpareServers 20
MaxSpareServers 40
MaxClients 200
MaxRequestsPerChild 4500
</IfModule>
第三、设置Apache主机账户
1、创建配置文件
在/etc/httpd/conf.d目录中创建vhost.conf。
NameVirtualHost *:80
<VirtualHost *:80>
ServerAdmin webmaster@imbwh.com
ServerName imbwh.com
ServerAlias www.imbwh.com
DocumentRoot /var/www/imbwh.com/public_html/
ErrorLog /var/www/imbwh.com/logs/error.log
CustomLog /var/www/imbwh.com/logs/access.log combined
</VirtualHost>
这里我们需要将"imbwh.com"域名修改成我们自己需要的。
2、创建网站目录
mkdir -p /var/www/imbwh.com/public_html
mkdir /var/www/imbwh.com/logs
给网站创建存放文件目录,这里需要将"imbwh.com"修改成自己的域名。
3、启动生效
service httpd start
/sbin/chkconfig --levels 235 httpd on
第四、安装MySQL数据库
1、安装数据库
yum install mysql-server -y
2、启动数据库
service mysqld start
/sbin/chkconfig --levels 235 mysqld on
3、设置数据库安全选项
mysql_secure_installation
根据向导设置数据库密码和一些默认配置。
第五、创建数据库账户
这里我们需要给网站项目创建数据库。
mysql -u root -p
登入数据库管理,这里密码是我们上面设置的。
create database imbwh;
grant all on imbwh.* to 'imbwh' identified by 'imbwh.com';
根据实际需要设置数据库用户名(imbwh)和密码(imbwh.com)。
quit
退出MySQL数据库管理。
第六、PHP环境安装和配置
1、安装PHP
yum install php php-pear php-mysql -y
2、修改配置文件
/etc/php.ini
根据我们服务器的配置修改文件参数。在这里我提到是用的2GB内存服务器,所以配置修改:
error_reporting = E_COMPILE_ERROR|E_RECOVERABLE_ERROR|E_ERROR|E_CORE_ERROR
error_log = /var/log/php/error.log
max_input_time = 30
根据我们实际的配置微调。
3、创建PHP日志文件目录
mkdir /var/log/php
chown apache /var/log/php
4、启动
service httpd restart
这样,我们就在当前CentOS服务器中创建完毕LAMP环境。
本文来自搬瓦工VPS中文网:https://www.imbwh.com/67.html
Windows上使用nginx作为web服务器时,我们的php环境就需要借助第三方的插件来启动,在windows服务器上nginx现在还没有启动php的功能,nginx不像iis那样只要iis和php绑定成功,iis启动时php也就会跟着启动,nginx现在支持单独在windows系统上独立启动,但是还不支持启动php,我们今天的课题就是在Windows系统上独立启动php。
nginx开始之前首先必须要确认:
①php已经正确的安装,php.ini已经正确配置完成;②nginx已经正确安装并且nginx.conf正确配置完毕。说明:nginx安装路径为D:\nginx,php安装路径为D:\php(根据您自己的路径进入php的安装目录),我的php和nginx均安装在D盘根目录。
需要的插件有①RunHiddenConsole和②xxfpm这两个,RunHiddenConsole用来启动Windows系统下的php,即启动php的fastcgi.xe程序;xxfpm则用来维持php进程不会自动退出,使php保持在后台稳定运行。RunHiddenConsole下载地址:
RunHiddenConsole下载xxfpm下载地址:
xxfpm下载下载完毕后将这2个插件上传到服务器,解压缩RunHiddenConsole得到RunHiddenConsole.exe文件,将RunHiddenConsole.exe拷贝到nginx安装目录D:\nginx文件夹里面;在nginx的安装目录(D:\nginx)下新建名为xxfpm的文件夹,解压缩xxfpm,将解压得到xxfpm文件夹里面的bin和src文件夹这2个文件夹拷贝到D:\nginx\xxfpm文件夹内,xxfpm文件夹内的东西如下图:
文件结构编写启动php代码
打开记事本,输入以下代码,将其以bat格式保存到nginx的安装目录D:\nginx文件夹内,名称为start_php.bat,注意格式一定是.bat的。
@echo offREM Windows 下无效REM set PHP_FCGI_CHILDREN=2REM 每个进程处理的最大请求数,或设置为 Windows 环境变量set PHP_FCGI_MAX_REQUESTS=1000echo Starting PHP FastCGI……RunHiddenConsole D:/nginx/xxfpm/bin/xxfpm.exe "D:/php/php-cgi.exe -c D:/php/php.ini" -n 2 -i 127.0.0.1 -p 9000exit
上面代码截图如下,需要注意最后一行exit前面一行不是两行代码,代码截图显示:
代码截图将上面代码保后截图:
start_php到此启动php的程序安装就全部结束了,双击nginx安装目录下我们编写的start_php.bat即可启动php,打开任务管理器,可以看到有2个CGI/fastcgi进程。下图所示的进程你使用右键结束的方式是关闭不了的,点其中一个结束进程,你会发现立即又自动除了一个,这样就可以保证fastcgi在服务器上稳定运行不会自动退出了。
php进程fastcgi进程个数修改
这个在前面我们的启动代码里面有REM set PHP_FCGI_CHILDREN=2,其中的数字2是启动2个php进程的意思,和后面的-n 2 要保持数字一致。只需将这两处的数字修改为你想要的即可,截图显示更明确:
修改cgi进程个数D:/nginx/xxfpm/bin/xxfpm.exe 这是xxfpm的路径。D:/php/php-cgi.exe -c D:/php/php.ini这是php的安装路径和php.ini的路径,如果您的路径不是这样的记得修改为对应的路径即可。那个数字9000是监听php端口,不要做修改。这样保证了php可以在后台稳定运行了,有时候需要结束怎么办,我们继续编写一个结束运行的的代码。
编写退出nginx+php代码
但是这样关闭不了一直运行也不是绝对的好事,如果想要关闭怎么办,请打开记事本输入以下代码,将其以bat格式保存到nginx的安装目录D:\nginx文件夹内,命名为stop_php+nginx.bat文件,需要关闭php的时候双击这个文件即可退出php和nginx了。为了方便,结束php进程时同时把nginx也关闭掉,方便一键启动,代码如下。
echo Stopping nginx... taskkill /F /IM nginx.exe > nulecho Stopping PHP FastCGI...taskkill /F /IM php-cgi.exe > nultaskkill /F /IM xxfpm.exe > nulexit
将上面的代码按照前面说的路径保存后,双击此文件即可结束php和nginx进程。完整文件如下图所示,我们将启动和结束代码和放在nginx文件夹内,主要是为了启动和结束都方便。
启动结束结束代码解释:这个stop_php+nginx.bat文件里面的taskkill /F /IM nginx.exe > nul这一行是退出nginx的意思,后面分别是退出fastcgi,关闭php-cgi.exe进程,关闭xxfpm.exe进程,直接复制过去就可以不用做修改,放在nginx安装目录下的原因是方便使用,启动nginx只需要双击nginx.exe即可。
到此Windows系统上安装php+nginx的环境部署和相关配置算是真正的完成了,本文相关软件和配置文件没有的话可以问我。使用nginx而不用iis的原因是iis不安全,太容易被挂马。
一些初学者可能还不知道怎么搭建php环境,笔者就遇到很多小白,前台,后台混不清是什么。为什么需要后台,添加文章的原理是什么。
php环境今天笔者就介绍一下怎么搭建php环境,让本地运行调试代码。有两种途径,一个是单独安装,还有个就是安装集成包。笔者今天要介绍的就是用集成环境,笔者觉得这样的效率比较高。虽然从安全性方面,单独安全的安全性更好。感兴趣的朋友可以去试试。
wamp集成包一般笔者安装的是wamp或者phpstudy都是一键式安装。默认数据库的密码是空或者123456,然后把代码放在wamp里面www的目录。通过127.0.0.1或者localhost后面跟上你的文件夹路径就可以访问调试了。
一般服务器环境是linux或者window。liunx的安全性更好,同样的配置linux的效率也高一些。对于网站安全要求比较高的可以去研究一下liunx系统。
linux在使用过程中遇到问题欢迎留言咨询。
这里是义县游学电子科技为您带来目前thinkphp出现了6版本,那我这里以thinkphp5作为示例为大家介绍下如何在windows本机部署和访问使用.
1.下载本地web服务器集成环境.phpstudy8.1.0.7
打开服务器虚拟主机配置文件,把thinkphp要求的public目录写到root项
2.将thinkphp下载后解压到www根目录,如下图
解压后打开启动web服务器和浏览器输入:
http://localhost/index.php/index/index/index,应该可以看到thinkphp欢迎界面.
这里解释下index.php是入口文件,然后index/index/index是模块,控制器,类方法函数.
3.接着你就可以通过写自己的view文件模板进行设计网站了.view目录存放controller控制器的index类方法对应的模板
这只是一个简单的介绍,没什么太大功能,希望新手入门用了.
PHP伪静态
前言
在用PHP语言开发网站的时候,伪静态是一个绕不过去的一道坎,在PHP中设置伪静态对于老手来说是手到擒来,但是对于新手来说稍微有点难度,还没有掌握的小伙伴们不要着急,下面跟着小编一起来学习吧。
正文
一、Apache的伪静态配置
1、网站根目录下需要有 .htaccess 文件,没有则自己创建一个,内容为
<IfModule mod_rewrite.c> RewriteEngine on RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_FILENAME} !-f RewriteRule ^(.*)$ index.php/$1 [QSA,PT,L] </IfModule>如果你的apache是fastcgi模式下,则需要修改
RewriteRule ^(.*)$ index.php/$1 [QSA,PT,L]替换成 RewriteRule ^(.*)$ index.php [L,E=PATH_INFO:$1]
2、在apache的配置文件httpd.conf中查找 : LoadModule rewrite_module modules/mod_rewrite.so 将前面的#去掉,假如没有这段内容,则需要手动加上3、在apache的配置文件httpd.conf中查找所有的 AllowOverride None,将 None 都替换成 All . 保存文件 并重启apache服务。
二、Nginx的伪静态配置找到nginx的配置文件 nginx.conf, 在里面的 server{ } 里增加以下内容
location / {if (!-e $request_filename) { rewrite ^(.*)$ /index.php?s=$1 last; break; } }
重启nginx即可生效
三、IIS的伪静态配置如果你的服务器环境支持ISAPI_Rewrite的话,可以配置httpd.ini文件,添加下面的内容:
RewriteRule (.*)$ /index\.php\?s=$1 [I]
在IIS的高版本下面可以配置web.Config,在中间添加rewrite节点:
<rewrite><rules> <rule name="OrgPage" stopProcessing="true"> <match url="^(.*)$" /> <conditions logicalGrouping="MatchAll"> <add input="{HTTP_HOST}" pattern="^(.*)$" /> <add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" /> <add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true" /> </conditions> <action type="Rewrite" url="index.php/{R:1}" /> </rule> </rules> </rewrite>
结尾
通过本文的学习各位小伙伴们对于PHP中如何设置伪静态是不是学会了,那好以后还需要小伙伴们自己多多练习探索啊。
2013年发布至今, Docker 一直广受瞩目,被认为可能会改变软件行业。但是,许多人并不清楚 Docker 到底是什么,要解决什么问题,好处又在哪里?今天通过一个简单的LNMP项目架构部署环节让大家让了解docker的使用方法,所有的软装按照均采用docker部署。
第一步、centos7安装docker
1.1如果之前安装过docker,卸载旧版本
yum remove docker docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-selinux \
docker-engine-selinux \
docker-engine
1.2安装需要的软件包
yum install -y yum-utils device-mapper-persistent-data lvm2
1.3添加软件源信息(可选)
yum-config-manager --add-repo http//mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
1.4更新yum包缓存(可选)
yum makecache fast
1.5安装docker-ce
yum -y install docker-ce
1.6启动docker后台服务及开机启动
systemctl enable docker && systemctl start docker
1.7docker相关配置
# CentOS7的Docker默认存储路径修改
vi /usr/lib/systemd/system/docker.service
# 找到以下内容
ExecStart=/usr/bin/dockerd-current \
# -g 或 --graph 或 --data-root,插入或修改后保存
-g /datadisk/docker/data
# 修改后需要重载设置
systemctl daemon-reload
#配置镜像加速
[root@localhost ~]# mkdir -p /etc/docker
[root@localhost ~]# vim /etc/docker/daemon.json
在文件中添加如下配置
#阿里云镜像加速器
{"registry-mirrors": ["http://hub-mirror.c.163.com"] }
[root@localhost ~]# systemctl daemon-reload
[root@localhost ~]# systemctl restart docker
1.8查看docker版本
docker version
1.9运行 hello-world
docker run hello-world
1.10卸载删除docker-ce
[root@localhost ~]# systemctl stop docker
[root@localhost ~]# yum -y remove docker-ce
[root@localhost ~]# rm -rf /var/lib/docker
第二步、Docker安装部署Nginx
2.1拉取官方的最新版本的镜像
docker pull nginx:latest
2.2拉取官方的最新版本的镜像
docker pull nginx:latest
2.3docker命令查看是否已安装了 nginx
docker images
#在上图中可以看到我们已经安装了最新版本(latest)的 nginx 镜像。
2.4安装完成后,运行 nginx 容器
docker run --name nginx-test -p 8081:80 -d nginx
#参数说明:
--name nginx-test:容器名称。
-p 8081:80: 端口进行映射,将本地 8081 端口映射到容器内部的 80 端口。
-d nginx: 设置容器在在后台一直运行。
2.5检查nginx 容器是否运行成功
docker container ls
#说明
如果安装成功,是可以看到name为nginx-test已经存在运行列表中,期间如果我们想修改端口,重新运行容器的话
要先终止,在删除
docker container kill [containID]
docker container rm[containID]
最后我们可以通过浏览器可以直接访问 IP地址:8081,检查nginx 服务是否开启。
2.6查看容器中nginx的配置文件目录
docker exec nginx-prod ls /etc/nginx
2.7复制容器内的配置文件到宿主机
如果你不想复制整个文件夹,可仅复制conf.d文件夹内的配置文件,运行时挂载相应文件即可
docker cp -a nginx-prod:/etc/nginx/ /srv/nginx/conf
nginx-prod依然是你的容器运行名称
2.8停止Nginx容器并删除
我们要重新运行容器,挂载配置文件,那么这个容器就没用了,需要停止再删除
docker stop nginx-prod
docker rm nginx-prod
nginx-prod依然是你的容器运行名称,或者也可以用下面方式
docker container kill [containID]
docker container rm[containID]
2.9重新运行容器,并挂载我们在2.7步复制出来的配置文件目录
docker run -p 8081:80 --restart always --name nginx-prod -v /srv/nginx/www:/www -v /srv/nginx/conf/:/etc/nginx/ -v /srv/nginx/logs:/var/log/nginx -v /srv/nginx/wwwlogs:/wwwlogs -d nginx
--restart always :无论退出状态是如何,都重启容器
-v:挂载命令,主机目录:容器目录,当然你如果不想挂载那么多,只挂载配置文件也行,注意,这个时候你需要复制一份项目目录到容器中去
所以,/srv/nginx/www:/www这个挂载的作用就是把你主机项目文件夹挂载到容器中,然后再在主机配置文件nginx.conf中,设置root /www即可
最后强调下,挂载的配置文件中设置的根目录不是宿主机的目录,而是容器的根目录。
推荐挂载宿主机总目录到容器总目录,如:-v /data/www:/www
2.10修改配置文件,重启Nginx
到此Nginx已安装完成,如有需要就直接修改/srv/nginx/conf/conf.d目录下的配置文件,然后重启Nginx容器即可生效
docker restart nginx-prod
第三步、Docker安装部署PHP7
3.1拉取官方的PHP7.2.25镜像
查找 Docker Hub 上的 php 镜像:
可以通过 Sort by 查看其他版本的 php,默认是最新版本 php:latest。此外,我们还可以用 docker search php 命令来查看可用版本。这里我们拉取官方的镜像,标签为7.2.25-fpm
docker pull php:7.2.25-fpm
3.2检查PHP7.2.25镜像
docker images
3.3运行PHP镜像
docker run --name php7 -v /data/www:/www -d php:7.2.25-fpm
3.4测试PHP环境是否安装成功
首先在宿主机/data/www/test/目录下,新增test.php文件
#为什么我们要在/data/www/test目录下新增test.php文件,因为我在文件/srv/nginx/conf/conf.d/default.conf中
设置的root /www/test,而我挂载的项目根目录是-v /data/www:/www,所以宿主机的/data/www/test目录正是对应/www/test目录
然后在浏览器运行ip:8081/test.php
第四步、Docker安装部署MySQL
4.1拉取官方的MySQL8.0.18镜像
拉取MySQL镜像,可参照PHP的方法,在 Docker Hub 上的 查找你需要的MySQL 镜像:
docker pull mysql:8.0.18
4.2查看本地镜像
docker images
4.3运行MySQL容器
安装完成后,我们可以使用以下命令来运行 mysql 容器
docker run -itd --name mysql-prod -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 mysql:8.0.18
4.4容器机登录MySQL
容器可以通过 root 和密码 123456 访问 MySQL 服务
mysql -h localhost -u root -p
至此,LNMP所有的软件已全部使用Docker安装完成,文章有些样式不支持就删除了,本文更多详情请浏览雷小天博客。
Lumen为速度而生的 Laravel 框架,是Laravel框架的精简版,我们也可以通过需求再做扩展,我们平常制作API接口服务器首先。
首先,搭建API服务器
我们用的是OneinStack,所以新增虚拟主机比较方便。
cd /root/oneinstack./vhost.sh
然后根据提示操作下即可。
下载Lumen,新建一个项目
先cd到前面创建的站点目录下,然后执行下载命令
composer globalrequire"laravel/lumen-installer"下载Lumen的安装包
这个下载比较耗时,请耐心等待~
新建项目 api
composer create-project --prefer-dist laravel/lumen api
配置.env
主要配置APP_KEY、APP_URL
APP_KEY= ******* //随机32位字符APP_URL= ****** //你的主域名
这边还需要配置下数据库,然后执行下命令
php artisan cache:clear
写个测试路由
$router->get('/test', function (){return response()->json(["msg"=>"API URL TEST.","code"=>"000000"]);});
访问对应网址,获得如下参数
{"msg":"API URL TEST.","code":"000000"}
补充
接下你可以根据项目需要,自己补充路由和控制器,以及自定义中间件。
安装过程相对简单,如果遇到Linux安装超时报错的。
可以在自己的Win系统里面下载好,并创建好项目,然后再上传到服务器,并且设置入口到public,重启服务器就可以访问了~
快速开始,绝无废话
我的linux服务器系统是CentOS 6.5
1,安装apache:
yum install httpd
apache的文件目录 /var/www/html
apache启动,停止,查看状态的命令:
service httpd startservice httpd stopservice httpd status
配置文件 /etc/httpd/conf/httpd.conf
修改端口(默认是80) Listen 8082
修改ServerName ServerName localhost:8082
测试,能出来页面OK了
2,安装php
yum install phpphp-devel
安装好后,php -v 查看一下
能出来版本说明ok
再重启一下apache
service httpd restart
写个php页面测试
在apache的文件目录 /var/www/html下,创建一个test.php
<?php echo "Hello world!"; ?><?php phpinfo(); ?>
保存后,回到浏览器测试
完成,
3,连接mysql
mysql的安装,略。公司有DBA,呵呵。
先安装php的扩展
yum install php-mysql php-gd php-imap php-ldap php-odbc php-pear php-xml php-xmlrpc
安装完扩展之后需要再次重启apache
service httpd restart
测试mysql是否链接成功的php代码
<?php$servername = "localhost"; $username = "username";$password = "password"; $dbname = "数据库名"; $port = "端口"; // 创建连接$conn = new mysqli($servername, $username, $password, $dbname, $port); // 检测连接if ($conn->connect_error) { die("连接失败: " . $conn->connect_error); } echo "连接成功";?>
完成。开始撸代码。
P.S:
吐槽一下,百家号这个编辑器,贴个代码是真费劲啊
我们一直在倾听大家口述的故事,访谈时间也有最初的1个半小时拉长到平均5天,我们把能写的故事做成了类似《人物故事》专栏,同步更新在微博#我是社会人#,简书#树洞#专栏。说实话,并不是每个人的经历都能写成真正的故事,因为故事对人物要求太过丰满,丰满到每一个细节都需要价值观的转变和伏笔,所有故事场景都需要合并去重复,最终留下的故事寥寥无几。这些故事无一例外的反映了一个问题,生活手艺和平台的缺失。为了能弥补这一块内容,我们决定和大家一起学门手艺。在网站开发方面,我们主推PHP方面的知识。在职场学习方面,我们主推OFFICE系列相关知识。在赚钱生存方面,我们主推CFA系列相关知识。目前暂定三项,所有的这些都会收录在微博#有情调特爱学#话题中。想起自己毕业那会学C#的日日夜夜,甚是苦恼。由于当年从事WinForm方向,既不是APP也不是Web,所以错过了很好的Web井喷期红利,当年学习做Web开发的人,接的项目学的手艺,足以养活一家人了。为此,至今我都后悔不已。我想,只要移动互联不死,以后就应该是Web的天下了,因为大部分架构已从十年前的C/S架构转为B/S架构了,而WinForm方向早已转入企业级,.net (微软的产品)对运行库有强制性要求,这样就逼着开发者和甲方都需要安装这么庞大的运行库,费用也不低,虽说不上孰是孰非,但互联网轻度、快速开发应该是王道。PS:凑足300字申请原创,所有课程均免费,我们自行学习收费课程并经提炼、实践制作,如不反感,请帮忙转发, 并在微博上刺客_老莫 @戏子入画_夏雨 ,谢谢支持。