switch vagrant scripts to make install

This commit is contained in:
Sarah Hoffmann
2021-02-16 12:04:34 +01:00
parent 7360e6c5df
commit 286a686f88
4 changed files with 124 additions and 89 deletions

View File

@@ -106,36 +106,6 @@ sudo chown vagrant /srv/nominatim #DOCS:
sudo -u postgres createuser -s $USERNAME sudo -u postgres createuser -s $USERNAME
sudo -u postgres createuser apache sudo -u postgres createuser apache
#
# Setting up the Apache Webserver
# -------------------------------
#
# You need to create an alias to the website directory in your apache
# configuration. Add a separate nominatim configuration to your webserver:
#DOCS:```sh
sudo tee /etc/httpd/conf.d/nominatim.conf << EOFAPACHECONF
<Directory "$USERHOME/build/website">
Options FollowSymLinks MultiViews
AddType text/html .php
DirectoryIndex search.php
Require all granted
</Directory>
Alias /nominatim $USERHOME/build/website
EOFAPACHECONF
#DOCS:```
sudo sed -i 's:#.*::' /etc/httpd/conf.d/nominatim.conf #DOCS:
#
# Then reload apache
#
sudo systemctl enable httpd
sudo systemctl restart httpd
# #
# Installing Nominatim # Installing Nominatim
# ==================== # ====================
@@ -164,11 +134,48 @@ fi #DOCS:
# then configure and build Nominatim in there: # then configure and build Nominatim in there:
#DOCS: :::sh #DOCS: :::sh
cd $USERHOME mkdir $USERHOME/build
mkdir build cd $USERHOME/build
cd build
cmake $USERHOME/Nominatim cmake $USERHOME/Nominatim
make make
sudo make install
#
# Setting up the Apache Webserver
# -------------------------------
#
# The webserver should serve the php scripts from the website directory of your
# [project directory](../admin/import.md#creating-the-project-directory).
# Therefore set up a project directory and populate the website directory:
#
mkdir $USERHOME/nominatim-project
cd $USERHOME/nominatim-project
nominatim refresh --website
#
# You need to create an alias to the website directory in your apache
# configuration. Add a separate nominatim configuration to your webserver:
#DOCS:```sh
sudo tee /etc/httpd/conf.d/nominatim.conf << EOFAPACHECONF
<Directory "$USERHOME/nominatim-project/website">
Options FollowSymLinks MultiViews
AddType text/html .php
DirectoryIndex search.php
Require all granted
</Directory>
Alias /nominatim $USERHOME/nominatim-project/website
EOFAPACHECONF
#DOCS:```
sudo sed -i 's:#.*::' /etc/httpd/conf.d/nominatim.conf #DOCS:
#
# Then reload apache
#
sudo systemctl enable httpd
sudo systemctl restart httpd
# #
# Adding SELinux Security Settings # Adding SELinux Security Settings
@@ -178,11 +185,11 @@ fi #DOCS:
# with a web server accessible from the Internet. At a minimum the # with a web server accessible from the Internet. At a minimum the
# following SELinux labeling should be done for Nominatim: # following SELinux labeling should be done for Nominatim:
sudo semanage fcontext -a -t httpd_sys_content_t "$USERHOME/Nominatim/(website|lib|settings)(/.*)?" sudo semanage fcontext -a -t httpd_sys_content_t "/usr/local/nominatim/lib/lib-php(/.*)?"
sudo semanage fcontext -a -t httpd_sys_content_t "$USERHOME/build/(website|lib|settings)(/.*)?" sudo semanage fcontext -a -t httpd_sys_content_t "$USERHOME/nominatim-project/website(/.*)?"
sudo semanage fcontext -a -t lib_t "$USERHOME/build/module/nominatim.so" sudo semanage fcontext -a -t lib_t "$USERHOME/nominatim-project/module/nominatim.so"
sudo restorecon -R -v $USERHOME/Nominatim sudo restorecon -R -v /usr/local/lib/nominatim
sudo restorecon -R -v $USERHOME/build sudo restorecon -R -v $USERHOME/nominatim-project
# You need to create a minimal configuration file that tells nominatim # You need to create a minimal configuration file that tells nominatim

View File

@@ -100,36 +100,6 @@ sudo chown vagrant /srv/nominatim #DOCS:
sudo -u postgres createuser -s $USERNAME sudo -u postgres createuser -s $USERNAME
sudo -u postgres createuser apache sudo -u postgres createuser apache
#
# Setting up the Apache Webserver
# -------------------------------
#
# You need to create an alias to the website directory in your apache
# configuration. Add a separate nominatim configuration to your webserver:
#DOCS:```sh
sudo tee /etc/httpd/conf.d/nominatim.conf << EOFAPACHECONF
<Directory "$USERHOME/build/website">
Options FollowSymLinks MultiViews
AddType text/html .php
DirectoryIndex search.php
Require all granted
</Directory>
Alias /nominatim $USERHOME/build/website
EOFAPACHECONF
#DOCS:```
sudo sed -i 's:#.*::' /etc/httpd/conf.d/nominatim.conf #DOCS:
#
# Then reload apache
#
sudo systemctl enable httpd
sudo systemctl restart httpd
# #
# Installing Nominatim # Installing Nominatim
# ==================== # ====================
@@ -158,11 +128,48 @@ fi #DOCS:
# then configure and build Nominatim in there: # then configure and build Nominatim in there:
#DOCS: :::sh #DOCS: :::sh
cd $USERHOME mkdir $USERHOME/build
mkdir build cd $USERHOME/build
cd build
cmake $USERHOME/Nominatim cmake $USERHOME/Nominatim
make make
sudo make install
#
# Setting up the Apache Webserver
# -------------------------------
#
# The webserver should serve the php scripts from the website directory of your
# [project directory](../admin/import.md#creating-the-project-directory).
# Therefore set up a project directory and populate the website directory:
#
mkdir $USERHOME/nominatim-project
cd $USERHOME/nominatim-project
nominatim refresh --website
#
# You need to create an alias to the website directory in your apache
# configuration. Add a separate nominatim configuration to your webserver:
#DOCS:```sh
sudo tee /etc/httpd/conf.d/nominatim.conf << EOFAPACHECONF
<Directory "$USERHOME/nominatim-project/website">
Options FollowSymLinks MultiViews
AddType text/html .php
DirectoryIndex search.php
Require all granted
</Directory>
Alias /nominatim $USERHOME/nominatim-project/website
EOFAPACHECONF
#DOCS:```
sudo sed -i 's:#.*::' /etc/httpd/conf.d/nominatim.conf #DOCS:
#
# Then reload apache
#
sudo systemctl enable httpd
sudo systemctl restart httpd
# #
# Adding SELinux Security Settings # Adding SELinux Security Settings
@@ -172,11 +179,11 @@ fi #DOCS:
# with a web server accessible from the Internet. At a minimum the # with a web server accessible from the Internet. At a minimum the
# following SELinux labeling should be done for Nominatim: # following SELinux labeling should be done for Nominatim:
sudo semanage fcontext -a -t httpd_sys_content_t "$USERHOME/Nominatim/(website|lib|settings)(/.*)?" sudo semanage fcontext -a -t httpd_sys_content_t "/usr/local/nominatim/lib/lib-php(/.*)?"
sudo semanage fcontext -a -t httpd_sys_content_t "$USERHOME/build/(website|lib|settings)(/.*)?" sudo semanage fcontext -a -t httpd_sys_content_t "$USERHOME/nominatim-project/website(/.*)?"
sudo semanage fcontext -a -t lib_t "$USERHOME/build/module/nominatim.so" sudo semanage fcontext -a -t lib_t "$USERHOME/nominatim-project/module/nominatim.so"
sudo restorecon -R -v $USERHOME/Nominatim sudo restorecon -R -v /usr/local/lib/nominatim
sudo restorecon -R -v $USERHOME/build sudo restorecon -R -v $USERHOME/nominatim-project
# You need to create a minimal configuration file that tells nominatim # You need to create a minimal configuration file that tells nominatim

View File

@@ -29,9 +29,13 @@ export DEBIAN_FRONTEND=noninteractive #DOCS:
libbz2-dev libpq-dev libproj-dev \ libbz2-dev libpq-dev libproj-dev \
postgresql-server-dev-10 postgresql-10-postgis-2.4 \ postgresql-server-dev-10 postgresql-10-postgis-2.4 \
postgresql-contrib-10 postgresql-10-postgis-scripts \ postgresql-contrib-10 postgresql-10-postgis-scripts \
php php-pgsql php-intl python3-dotenv \ php php-pgsql php-intl python3-pip \
python3-psycopg2 git python3-psycopg2 git
# The python-dotenv package that comes with Ubuntu 18.04 is too old, so
# install the latest version from pip:
pip3 install python-dotenv
# #
# System Configuration # System Configuration
@@ -113,11 +117,11 @@ fi #DOCS:
# The code must be built in a separate directory. Create this directory, # The code must be built in a separate directory. Create this directory,
# then configure and build Nominatim in there: # then configure and build Nominatim in there:
cd $USERHOME mkdir $USERHOME/build
mkdir build cd $USERHOME/build
cd build
cmake $USERHOME/Nominatim cmake $USERHOME/Nominatim
make make
sudo make install
# Nominatim is now ready to use. You can continue with # Nominatim is now ready to use. You can continue with
@@ -127,6 +131,14 @@ fi #DOCS:
# Setting up a webserver # Setting up a webserver
# ====================== # ======================
# #
# The webserver should serve the php scripts from the website directory of your
# [project directory](../admin/import.md#creating-the-project-directory).
# Therefore set up a project directory and populate the website directory:
mkdir $USERHOME/nominatim-project
cd $USERHOME/nominatim-project
nominatim refresh --website
#
# Option 1: Using Apache # Option 1: Using Apache
# ---------------------- # ----------------------
# #
@@ -142,14 +154,14 @@ if [ "x$2" == "xinstall-apache" ]; then #DOCS:
#DOCS:```sh #DOCS:```sh
sudo tee /etc/apache2/conf-available/nominatim.conf << EOFAPACHECONF sudo tee /etc/apache2/conf-available/nominatim.conf << EOFAPACHECONF
<Directory "$USERHOME/build/website"> <Directory "$USERHOME/nominatim-project/website">
Options FollowSymLinks MultiViews Options FollowSymLinks MultiViews
AddType text/html .php AddType text/html .php
DirectoryIndex search.php DirectoryIndex search.php
Require all granted Require all granted
</Directory> </Directory>
Alias /nominatim $USERHOME/build/website Alias /nominatim $USERHOME/nominatim-project/website
EOFAPACHECONF EOFAPACHECONF
#DOCS:``` #DOCS:```
@@ -206,7 +218,7 @@ server {
listen 80 default_server; listen 80 default_server;
listen [::]:80 default_server; listen [::]:80 default_server;
root $USERHOME/build/website; root $USERHOME/nominatim-project/website;
index search.php index.html; index search.php index.html;
location / { location / {
try_files \$uri \$uri/ @php; try_files \$uri \$uri/ @php;

21
vagrant/Install-on-Ubuntu-20.sh Normal file → Executable file
View File

@@ -115,11 +115,11 @@ fi #DOCS:
# The code must be built in a separate directory. Create this directory, # The code must be built in a separate directory. Create this directory,
# then configure and build Nominatim in there: # then configure and build Nominatim in there:
cd $USERHOME mkdir $USERHOME/build
mkdir build cd $USERHOME/build
cd build
cmake $USERHOME/Nominatim cmake $USERHOME/Nominatim
make make
sudo make install
# Nominatim is now ready to use. You can continue with # Nominatim is now ready to use. You can continue with
# [importing a database from OSM data](../admin/Import.md). If you want to set up # [importing a database from OSM data](../admin/Import.md). If you want to set up
@@ -127,6 +127,15 @@ fi #DOCS:
# #
# Setting up a webserver # Setting up a webserver
# ====================== # ======================
#
# The webserver should serve the php scripts from the website directory of your
# [project directory](../admin/import.md#creating-the-project-directory).
# Therefore set up a project directory and populate the website directory:
mkdir $USERHOME/nominatim-project
cd $USERHOME/nominatim-project
nominatim refresh --website
# #
# Option 1: Using Apache # Option 1: Using Apache
# ---------------------- # ----------------------
@@ -143,14 +152,14 @@ if [ "x$2" == "xinstall-apache" ]; then #DOCS:
#DOCS:```sh #DOCS:```sh
sudo tee /etc/apache2/conf-available/nominatim.conf << EOFAPACHECONF sudo tee /etc/apache2/conf-available/nominatim.conf << EOFAPACHECONF
<Directory "$USERHOME/build/website"> <Directory "$USERHOME/nominatim-project/website">
Options FollowSymLinks MultiViews Options FollowSymLinks MultiViews
AddType text/html .php AddType text/html .php
DirectoryIndex search.php DirectoryIndex search.php
Require all granted Require all granted
</Directory> </Directory>
Alias /nominatim $USERHOME/build/website Alias /nominatim $USERHOME/nominatim-project/website
EOFAPACHECONF EOFAPACHECONF
#DOCS:``` #DOCS:```
@@ -207,7 +216,7 @@ server {
listen 80 default_server; listen 80 default_server;
listen [::]:80 default_server; listen [::]:80 default_server;
root $USERHOME/build/website; root $USERHOME/nominatim-project/website;
index search.php index.html; index search.php index.html;
location / { location / {
try_files \$uri \$uri/ @php; try_files \$uri \$uri/ @php;