运行我所做的每个脚本:
go build script.go
mv script script.fcgi
我的apache配置看起来如此:
<VirtualHost [myip]:80>
ServerAdmin webmaster@example.com
ServerName website.com
DocumentRoot /home/user/www
RewriteCond %{DOCUMENT_ROOT}%{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ /our_bin [QSA,L]
<Directory /home/user/www>
Allow from all
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d [OR]
RewriteCond %{REQUEST_URI} ^/$
RewriteRule ^(.*)$ script.fcgi/$1 [QSA,L]
</Directory>
</VirtualHost>
问题: 1)如果我构建了1个脚本,它将与我链接的所有包构建,对吧? 2)我如何自定义fcgi并且每次都不需要构建
抱歉英语不好答案 0 :(得分:2)
你做不到。 Go不是“脚本语言”,Apache不知道如何处理它(与PHP FCGI和变体不同)。
您需要使用HTTP或FCGI服务器构建(编译)Go应用程序,然后运行它,然后使用Apache(或nginx)将代理反向转换为Go应用程序正在侦听的HTTP端口/ FCGI套接字。 / p>
查看Go文档中的net/http文档和simple web application教程。根据我的经验,我建议在FCGI上使用反向HTTP代理,因为它更容易调试/配置。
即
<VirtualHost myhost:80>
ServerName www.mydomain.com
ProxyPass / http://localhost:8000/ # Your Go app's listening port
ProxyPassReverse / http://localhost:8000/
</VirtualHost>
请注意,这不是经过测试也不是完整的示例,但应该可以帮助您入门。