Jump to content

Installation Problem DirectoryIterator::__construct


LukeCage
 Share

Recommended Posts

Hi!

I have some problems to trasfer the installation from local to the server. The problem is this error. This is a fresh installation, and the server is an Hosting Windows (Aruba.it). What can i do? I tried various versions of Processwire (from 2.8 to 3.x), i think that the problem is something related to the hosting (the client already buyed this so i can't do much). Pls Help!

 

Cattura2233.PNG

Link to comment
Share on other sites

Link to comment
Share on other sites

6 hours ago, matjazp said:

While you definitely need web.config file and IIS URL rewrite (if you are sure you are running IIS), this is still a permission problem.

the fact is that i just added permission to read and write to all the foleders... I will check if it is added to only the roots folders or also the files inside of it ? 

Link to comment
Share on other sites

As the error say, you have a write permission issue on your server.

What is the server version ? It is managed by Plesk ?

About the web.config file, once you get your install up and working, you will get a 404 page for the frontend and backend, so just insert this block in your web.config (tested on IIS-8) :

<rewrite>
    <rules>
        <rule name="Handle request for missing favicon.ico" stopProcessing="true">
            <match url="favicon\.ico"/>
            <action type="CustomResponse" statusCode="404" subStatusCode="1"
                    statusReason="The requested file favicon.ico was not found"
                    statusDescription="The requested file favicon.ico was not found"/>
        </rule>
        <rule name="Handle request for missing robots.txt" stopProcessing="true">
            <match url="robots\.txt"/>
            <action type="CustomResponse" statusCode="404" subStatusCode="1"
                    statusReason="The requested file robots.txt was not found"
                    statusDescription="The requested file robots.txt was not found"/>
        </rule>
        <rule name="Access Restrictions: Keep web users out of directories">
            <match url="(^|/)\." ignoreCase="false"/>
            <action type="CustomResponse" statusCode="403" statusReason="Forbidden" statusDescription="Forbidden"/>
        </rule>
        <rule name="Access Restrictions: Protect ProcessWire system files" stopProcessing="true">
            <match url="^.*$" ignoreCase="false"/>
            <conditions logicalGrouping="MatchAny">
                <add input="{URL}" pattern="(^|/)site/assets/(cache|logs|backups|sessions|config|install)($|/.*$)"
                     ignoreCase="false"/>
                <add input="{URL}" pattern="(^|/)site/install($|/.*$)" ignoreCase="false"/>
                <add input="{URL}" pattern="(^|/)site/config\.php$" ignoreCase="false"/>
                <add input="{URL}" pattern="(^|/)(wire|site)/templates-admin($|/|/.*\.(php|html?|tpl|inc))$"
                     ignoreCase="false"/>
                <add input="{URL}" pattern="(^|/)site/templates($|/|/.*\.(php|html?|tpl|inc))$" ignoreCase="false"/>
                <add input="{URL}" pattern="(^|/)site/assets($|/|/.*\.php)$" ignoreCase="false"/>
                <add input="{URL}" pattern="(^|/)wire/(core|modules)/.*\.(php|inc|tpl|module)$" ignoreCase="false"/>
                <add input="{URL}" pattern="(^|/)site/modules/.*\.(php|inc|tpl|module)$" ignoreCase="false"/>
                <add input="{URL}" pattern="(^|/)(COPYRIGHT|INSTALL|README|htaccess)\.txt$" ignoreCase="false"/>
                <add input="{URL}" pattern="(^|/)site-default/" ignoreCase="false"/>
            </conditions>
            <action type="CustomResponse" statusCode="403" statusReason="Forbidden" statusDescription="Forbidden"/>
        </rule>
        <rule name="ProcessWire Rewrite" stopProcessing="true">
            <match url="^(.*)$" ignoreCase="false"/>
            <conditions logicalGrouping="MatchAll">
                <add input="{URL}" pattern="^/~?[-_.a-zA-Z0-9/]*$" ignoreCase="false"/>
                <add input="{REQUEST_FILENAME}" matchType="IsFile" ignoreCase="false" negate="true"/>
                <add input="{REQUEST_FILENAME}" matchType="IsDirectory" ignoreCase="false" negate="true"/>
                <add input="{REQUEST_FILENAME}" pattern="(favicon\.ico|robots\.txt)" ignoreCase="false" negate="true"/>
                <add input="{URL}" pattern="\.(gif|jpg|png|ico)$" negate="true"/>
            </conditions>
            <action type="Rewrite" url="index.php?it={R:1}" appendQueryString="true"/>
        </rule>
    </rules>
</rewrite>

 

 

Link to comment
Share on other sites

2 hours ago, LukeCage said:

the fact is that i just added permission to read and write to all the foleders... I will check if it is added to only the roots folders or also the files inside of it

You mean modify? Who is the owner of the files? Does the user IIS is running under have permission to access the files? ProcessWire installer needs write permission on site* folders, so that it can rename them. Installer also need write permission to some other files. Temporary write permission on root folder itself is also needed, so installer can rename/remove folders below... Check with your provider.

Link to comment
Share on other sites

2 hours ago, flydev said:

As the error say, you have a write permission issue on your server.

What is the server version ? It is managed by Plesk ?

About the web.config file, once you get your install up and working, you will get a 404 page for the frontend and backend, so just insert this block in your web.config (tested on IIS-8) :


<rewrite>
    <rules>
        <rule name="Handle request for missing favicon.ico" stopProcessing="true">
            <match url="favicon\.ico"/>
            <action type="CustomResponse" statusCode="404" subStatusCode="1"
                    statusReason="The requested file favicon.ico was not found"
                    statusDescription="The requested file favicon.ico was not found"/>
        </rule>
        <rule name="Handle request for missing robots.txt" stopProcessing="true">
            <match url="robots\.txt"/>
            <action type="CustomResponse" statusCode="404" subStatusCode="1"
                    statusReason="The requested file robots.txt was not found"
                    statusDescription="The requested file robots.txt was not found"/>
        </rule>
        <rule name="Access Restrictions: Keep web users out of directories">
            <match url="(^|/)\." ignoreCase="false"/>
            <action type="CustomResponse" statusCode="403" statusReason="Forbidden" statusDescription="Forbidden"/>
        </rule>
        <rule name="Access Restrictions: Protect ProcessWire system files" stopProcessing="true">
            <match url="^.*$" ignoreCase="false"/>
            <conditions logicalGrouping="MatchAny">
                <add input="{URL}" pattern="(^|/)site/assets/(cache|logs|backups|sessions|config|install)($|/.*$)"
                     ignoreCase="false"/>
                <add input="{URL}" pattern="(^|/)site/install($|/.*$)" ignoreCase="false"/>
                <add input="{URL}" pattern="(^|/)site/config\.php$" ignoreCase="false"/>
                <add input="{URL}" pattern="(^|/)(wire|site)/templates-admin($|/|/.*\.(php|html?|tpl|inc))$"
                     ignoreCase="false"/>
                <add input="{URL}" pattern="(^|/)site/templates($|/|/.*\.(php|html?|tpl|inc))$" ignoreCase="false"/>
                <add input="{URL}" pattern="(^|/)site/assets($|/|/.*\.php)$" ignoreCase="false"/>
                <add input="{URL}" pattern="(^|/)wire/(core|modules)/.*\.(php|inc|tpl|module)$" ignoreCase="false"/>
                <add input="{URL}" pattern="(^|/)site/modules/.*\.(php|inc|tpl|module)$" ignoreCase="false"/>
                <add input="{URL}" pattern="(^|/)(COPYRIGHT|INSTALL|README|htaccess)\.txt$" ignoreCase="false"/>
                <add input="{URL}" pattern="(^|/)site-default/" ignoreCase="false"/>
            </conditions>
            <action type="CustomResponse" statusCode="403" statusReason="Forbidden" statusDescription="Forbidden"/>
        </rule>
        <rule name="ProcessWire Rewrite" stopProcessing="true">
            <match url="^(.*)$" ignoreCase="false"/>
            <conditions logicalGrouping="MatchAll">
                <add input="{URL}" pattern="^/~?[-_.a-zA-Z0-9/]*$" ignoreCase="false"/>
                <add input="{REQUEST_FILENAME}" matchType="IsFile" ignoreCase="false" negate="true"/>
                <add input="{REQUEST_FILENAME}" matchType="IsDirectory" ignoreCase="false" negate="true"/>
                <add input="{REQUEST_FILENAME}" pattern="(favicon\.ico|robots\.txt)" ignoreCase="false" negate="true"/>
                <add input="{URL}" pattern="\.(gif|jpg|png|ico)$" negate="true"/>
            </conditions>
            <action type="Rewrite" url="index.php?it={R:1}" appendQueryString="true"/>
        </rule>
    </rules>
</rewrite>

 

 

no i't not managed by plesk, is a very limited dashboard... i tried that but it gives me the same problem

 

1 hour ago, matjazp said:

You mean modify? Who is the owner of the files? Does the user IIS is running under have permission to access the files? ProcessWire installer needs write permission on site* folders, so that it can rename them. Installer also need write permission to some other files. Temporary write permission on root folder itself is also needed, so installer can rename/remove folders below... Check with your provider.

I verified that all folders and files have the permission to write and read

I think that i will ask to Aruba.it to change from Windows hosting to Linux Hosting. I tried everything but doesn't work ? 

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...