Linux下实现访问ASP和PHP网站

鉴于网上各路大佬的方法均为Apache+Nginx配合,感觉较为繁琐,而且我这方法也能满足我的需求,所以分享给大家。首先,Linux服务器的准备,就不赘述了,不过,考虑到Mono(http://www.mono-project.com)的安装,建议使用Debian、Ubuntu、CentOS系统。至于Nginx,建议使用LNMP(https://lnmp.org)一键安装,其意思是:L:Linux,N:Nginx,M:MySQL,P:PHP。

借助SSH工具,首先安装LNMP(https://lnmp.org/install.html),然后安装Mono(http://www.mono-project.com/download/#download-lin)选择对应系统的安装命令。Ubuntu和Debian下注意安装mono-devel、mono-xsp4,CentOS下注意安装mono-devel、xsp。其实mono-devel肯定是必要的,不过我怕出错,安装的是mono-complete,关键区别在于mono-xsp4和xsp,因为系统不同,不过最后运行的都是fastcgi-mono-server4服务。

一切准备就绪后,我们就开始进行配置工作。借助SFTP工具打开(编辑)/usr/local/nginx/conf/nginx.conf文件,这是Nginx的配置文件,需要注意的是路径问题,因为这用的是LNMP一键安装包,所以为此路径,待会儿出现的所有路径同理。修改(参考:http://www.mono-project.com/docs/web/fastcgi/nginx):

server {
         listen   80;
         server_name  www.domain.com;
         root /home/wwwroot/default;
 
         location / {
                 index index.html index.htm default.aspx Default.aspx;
                 fastcgi_index Default.aspx;
                 fastcgi_pass 127.0.0.1:9000;
                 include /usr/local/nginx/conf/fastcgi_params;
                  }
      }

打开(编辑)/usr/local/nginx/conf/fastcgi_params文件,在底部添加:

fastcgi_param PATH_INFO "";
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;

打开(编辑)/etc/init.d/nginx文件,这是Nginx的状态管理文件,在start的if判断句相应位置处添加下列命令让fastcgi-mono-server4服务同Nginx一起启动:

fastcgi-mono-server4 /applications=/:/home/wwwroot/default/ /socket=tcp:127.0.0.1:9000 &

好了,配置完毕,重启一下Nginx:

service nginx restart

创建一个.net framework 4.0的ASP网站预览一下看看,此时还得考虑MySQL的连接问题,当然如果VPS或其他Cloud Server及服务器内存大于或等于2GB,硬盘大于或等于6GB的话,可以继续使用SQL Server,参考:https://docs.microsoft.com/en-us/sql/linux/sql-server-linux-setup

至于使用MySQL呢,因为LNMP已经一键安装啦!只需要配置连接即可。打开https://dev.mysql.com/downloads/connector/net/ 选择Generally Available(GA) Releases即可,Select Operating System:.NET & Mono即可,Download。页面跳转后选择No thanks, just start my download.不用Login也不用Sign Up。下载解压后使用Visual Studio平台添加引用版本号文件夹下的MySql.Data.dll组件到解决方案,确保3306端口已开,MySQL用户的IP权限已给,至此MySQL的连接问题搞定,连接语句的语法与SQL Server类似。

接下来,就是搞定PHP站点。通过域名的DNS解析,先添加一个二级域名,如:php.domain.com。此时记录类型选择显性URL(如选择隐性URL则会造成网站标题不能显示,只会显示当前设置的二级域名),主机记录填上php,记录值填上http://domain.com:XXXX(欲设置的端口号,可为1024~65535,建议还是自查一下,避免端口冲突),其余默认即可。

打开SSH工具,添加网站(虚拟主机),参考:https://lnmp.org/faq/lnmp-vhost-add-howto.html 注意这里就不要添加SSL证书了,不过443端口(https)可以分配给默认的80端口。

完成后打开(编辑)/usr/local/nginx/conf/vhost/php.domain.com.conf文件,复制所有信息,粘贴到/usr/local/nginx/conf/nginx.conf文件的最后一个server下面,并修改listen处的端口信息,此端口号与设置DNS解析时记录值处填写的相同,页脚的语句include vhost/*.conf;可用#注释掉,保存。至于/usr/local/nginx/conf/vhost/php.domain.com.conf文件可删除。

至此,所有配置完成,上传网站程序到相应目录就能访问啦~~~!